From 75632e70f0d49048f4ce72a0fa8bbcbcd7b2d312 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 29 Aug 2019 12:02:05 +0200 Subject: 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 * Set PHPMailer validator to html5 before sending email * fixup! Remove trailing comma in userController --- app/views/auth/register.phtml | 9 +++++++++ app/views/configure/system.phtml | 20 +++++++++++++++++++- app/views/user/manage.phtml | 11 +++++++++++ app/views/user/profile.phtml | 13 ++++++++++++- app/views/user/validateEmail.phtml | 22 ++++++++++++++++++++++ app/views/user_mailer/email_need_validation.txt | 5 +++++ 6 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 app/views/user/validateEmail.phtml create mode 100644 app/views/user_mailer/email_need_validation.txt (limited to 'app/views') diff --git a/app/views/auth/register.phtml b/app/views/auth/register.phtml index 19e11ef76..87582a2d0 100644 --- a/app/views/auth/register.phtml +++ b/app/views/auth/register.phtml @@ -8,6 +8,15 @@ + show_email_field) { ?> +
+ + +
+ +
diff --git a/app/views/configure/system.phtml b/app/views/configure/system.phtml index 9af4cc2c9..eb0e68dfc 100644 --- a/app/views/configure/system.phtml +++ b/app/views/configure/system.phtml @@ -38,6 +38,24 @@
+ can_enable_email_validation) { ?> +
+
+ +
+
+ +
@@ -51,7 +69,7 @@
- +
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 @@
+ show_email_field) { ?> +
+ +
+ +
+
+ +
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 @@ -partial('aside_configure'); ?> +disable_aside) { + $this->partial('aside_configure'); + } +?>
@@ -18,6 +22,13 @@
+
+ +
+ +
+
+
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 @@ +
+

+ title); ?> +

+ +

+ mail_login); ?> +

+ +
+ + +
+ +

+ + + +

+
diff --git a/app/views/user_mailer/email_need_validation.txt b/app/views/user_mailer/email_need_validation.txt new file mode 100644 index 000000000..13b63c1af --- /dev/null +++ b/app/views/user_mailer/email_need_validation.txt @@ -0,0 +1,5 @@ +username); ?> + +site_title); ?> + +validation_url; ?> -- cgit v1.2.3