diff options
| author | 2019-08-29 12:02:05 +0200 | |
|---|---|---|
| committer | 2019-08-29 12:02:05 +0200 | |
| commit | 75632e70f0d49048f4ce72a0fa8bbcbcd7b2d312 (patch) | |
| tree | 09c2f637ceedb76a30ad833555f02c2d50ee4863 /app/views/user | |
| parent | ad44ff81694ff4cbcccc514a17351476a38aadd8 (diff) | |
Provide email address verification feature (#2481)
* Add an email field to the profile page
I reuse the `mail_login` from the configuration. I'm not sure if it's
useful today (I would say it was used when Persona login was available).
A good improvement would be to rename `mail_login` into `email` so it
would be more intuitive to use.
* Add boolean to the conf to force email validation
This commit only adds a configuration item.
* Add email during registration if email must be validated
* Set email token to validate when email changes
* Block access to FreshRSS if email is not validated
* Send email when address is changed
* Allow to resend the validation email
* Allow the user to change its email while blocked
* Document the email validation feature
* fixup! Allow the user to change its email while blocked
* tec: Autoload PHPMailer lib
* Validate email address format
* Add feedback on validation email resend action
* Allow to logout when user is blocked
* fix: Change default email "from"
* Reorganize i18n keys
* Complete all the locales with default english
* Hide sidebar (profile page) if email is not validated
* Check email requirements on registration
* Allow admin to specify email when creating users
* Don't check email format if value is empty
* Remove trailing comma in userController
Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr>
* Set PHPMailer validator to html5 before sending email
* fixup! Remove trailing comma in userController
Diffstat (limited to 'app/views/user')
| -rw-r--r-- | app/views/user/manage.phtml | 11 | ||||
| -rw-r--r-- | app/views/user/profile.phtml | 13 | ||||
| -rw-r--r-- | app/views/user/validateEmail.phtml | 22 |
3 files changed, 45 insertions, 1 deletions
diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml index d0e5928ef..501257e5b 100644 --- a/app/views/user/manage.phtml +++ b/app/views/user/manage.phtml @@ -26,6 +26,17 @@ </div> </div> + <?php if ($this->show_email_field) { ?> + <div class="form-group"> + <label class="group-name" for="new_user_email"> + <?php echo _t('gen.auth.email'); ?> + </label> + <div class="group-controls"> + <input id="new_user_email" name="new_user_email" type="email" required /> + </div> + </div> + <?php } ?> + <div class="form-group"> <label class="group-name" for="new_user_passwordPlain"><?php echo _t('admin.user.password_form'); ?></label> <div class="group-controls"> diff --git a/app/views/user/profile.phtml b/app/views/user/profile.phtml index 83140376d..87aa25b11 100644 --- a/app/views/user/profile.phtml +++ b/app/views/user/profile.phtml @@ -1,4 +1,8 @@ -<?php $this->partial('aside_configure'); ?> +<?php + if (!$this->disable_aside) { + $this->partial('aside_configure'); + } +?> <div class="post"> <a href="<?php echo _url('index', 'index'); ?>"><?php echo _t('gen.action.back_to_rss_feeds'); ?></a> @@ -19,6 +23,13 @@ </div> <div class="form-group"> + <label class="group-name" for="email"><?php echo _t('conf.profile.email'); ?></label> + <div class="group-controls"> + <input id="email" name="email" type="email" value="<?php echo FreshRSS_Context::$user_conf->mail_login; ?>" /> + </div> + </div> + + <div class="form-group"> <label class="group-name" for="newPasswordPlain"><?php echo _t('conf.profile.password_form'); ?></label> <div class="group-controls"> <div class="stick"> diff --git a/app/views/user/validateEmail.phtml b/app/views/user/validateEmail.phtml new file mode 100644 index 000000000..a246c222e --- /dev/null +++ b/app/views/user/validateEmail.phtml @@ -0,0 +1,22 @@ +<div class="post"> + <p> + <?php echo _t('user.email.validation.need_to', FreshRSS_Context::$system_conf->title); ?> + </p> + + <p> + <?php echo _t('user.email.validation.email_sent_to', FreshRSS_Context::$user_conf->mail_login); ?> + </p> + + <form action="<?php echo _url('user', 'sendValidationEmail'); ?>" method="post"> + <input type="hidden" name="_csrf" value="<?php echo FreshRSS_Auth::csrfToken(); ?>" /> + <button type="submit" class="btn"> + <?php echo _t('user.email.validation.resend_email'); ?> + </button> + </form> + + <p> + <small> + <?php echo _t('user.email.validation.change_email', _url('user', 'profile')); ?> + </small> + </p> +</div> |
