aboutsummaryrefslogtreecommitdiff
path: root/app/Mailers/UserMailer.php
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2019-08-29 12:02:05 +0200
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2019-08-29 12:02:05 +0200
commit75632e70f0d49048f4ce72a0fa8bbcbcd7b2d312 (patch)
tree09c2f637ceedb76a30ad833555f02c2d50ee4863 /app/Mailers/UserMailer.php
parentad44ff81694ff4cbcccc514a17351476a38aadd8 (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/Mailers/UserMailer.php')
-rw-r--r--app/Mailers/UserMailer.php31
1 files changed, 31 insertions, 0 deletions
diff --git a/app/Mailers/UserMailer.php b/app/Mailers/UserMailer.php
new file mode 100644
index 000000000..5a2d39f1a
--- /dev/null
+++ b/app/Mailers/UserMailer.php
@@ -0,0 +1,31 @@
+<?php
+
+/**
+ * Manage the emails sent to the users.
+ */
+class FreshRSS_User_Mailer extends Minz_Mailer {
+ public function send_email_need_validation($username, $user_config) {
+ $this->view->_path('user_mailer/email_need_validation.txt');
+
+ $this->view->username = $username;
+ $this->view->site_title = FreshRSS_Context::$system_conf->title;
+ $this->view->validation_url = Minz_Url::display(
+ array(
+ 'c' => 'user',
+ 'a' => 'validateEmail',
+ 'params' => array(
+ 'username' => $username,
+ 'token' => $user_config->email_validation_token
+ )
+ ),
+ 'txt',
+ true
+ );
+
+ $subject_prefix = '[' . FreshRSS_Context::$system_conf->title . ']';
+ return $this->mail(
+ $user_config->mail_login,
+ $subject_prefix . ' ' ._t('user.mailer.email_need_validation.title')
+ );
+ }
+}