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/i18n/he/admin.php | 1 + app/i18n/he/conf.php | 1 + app/i18n/he/gen.php | 1 + app/i18n/he/user.php | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 app/i18n/he/user.php (limited to 'app/i18n/he') diff --git a/app/i18n/he/admin.php b/app/i18n/he/admin.php index e0dfc405d..759b74e2a 100644 --- a/app/i18n/he/admin.php +++ b/app/i18n/he/admin.php @@ -163,6 +163,7 @@ return array( 'help' => 'in seconds', //TODO - Translation 'number' => 'Duration to keep logged in', //TODO - Translation ), + 'force_email_validation' => 'Force email addresses validation', //TODO - Translation 'instance-name' => 'Instance name', //TODO - Translation 'max-categories' => 'Categories per user limit', //TODO - Translation 'max-feeds' => 'Feeds per user limit', //TODO - Translation diff --git a/app/i18n/he/conf.php b/app/i18n/he/conf.php index 1da5c292c..7e764b944 100644 --- a/app/i18n/he/conf.php +++ b/app/i18n/he/conf.php @@ -46,6 +46,7 @@ return array( '_' => 'Account deletion', //TODO - Translation 'warn' => 'Your account and all related data will be deleted.', //TODO - Translation ), + 'email' => 'Email address', //TODO - Translation 'password_api' => 'סיסמת API
(לדוגמה ליישומים סלולריים)', 'password_form' => 'סיסמה
(לשימוש בטפוס ההרשמה)', 'password_format' => 'At least 7 characters', //TODO - Translation diff --git a/app/i18n/he/gen.php b/app/i18n/he/gen.php index 13084fda0..270a66ea0 100644 --- a/app/i18n/he/gen.php +++ b/app/i18n/he/gen.php @@ -3,6 +3,7 @@ return array( 'action' => array( 'actualize' => 'מימוש', + 'back' => '← Go back', //TODO - Translation 'back_to_rss_feeds' => '← חזרה להזנות הRSS שלך', 'cancel' => 'ביטול', 'create' => 'יצירה', diff --git a/app/i18n/he/user.php b/app/i18n/he/user.php new file mode 100644 index 000000000..4f2cfcda2 --- /dev/null +++ b/app/i18n/he/user.php @@ -0,0 +1,32 @@ + array( + 'feedback' => array( + 'invalid' => 'The email address is invalid.', //TODO - Translation + 'required' => 'The email address is required.', //TODO - Translation + ), + 'validation' => array( + 'change_email' => 'You can change your email address on the profile page.', //TODO - Translation + 'email_sent_to' => 'We sent you an email at %s, please follow its indications to validate your address.', //TODO - Translation + 'feedback' => array( + 'email_failed' => 'We couldn’t send you an email because of a misconfiguration of the server.', //TODO - Translation + 'email_sent' => 'An email has been sent to your address.', //TODO - Translation + 'error' => 'The email address failed to be validated.', //TODO - Translation + 'ok' => 'The email address has been validated.', //TODO - Translation + 'unneccessary' => 'The email address was already validated.', //TODO - Translation + 'wrong_token' => 'The email address failed to be validated due to a wrong token.', //TODO - Translation + ), + 'need_to' => 'You need to validate your email address before being able to use %s.', //TODO - Translation + 'resend_email' => 'Resend the email', //TODO - Translation + 'title' => 'Email address validation', //TODO - Translation + ), + ), + 'mailer' => array( + 'email_need_validation' => array( + 'title' => 'You need to validate your account', //TODO - Translation + 'welcome' => 'Welcome %s,', //TODO - Translation + 'body' => 'You’ve just registered on %s but you still need to validate your email. For that, just follow the link:', //TODO - Translation + ), + ), +); -- cgit v1.2.3