diff options
author | Sam <8619576+samjf@users.noreply.github.com> | 2022-01-14 04:05:14 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-14 04:05:14 +0300 |
commit | 8e1aabfc68ad16ea8af059a9108a54e6053aa414 (patch) | |
tree | 2082e02319f8b1b7f5d3c859eac4f8ad54572076 /plugins/Login | |
parent | 30cab7d1cd8080f3fb88004a2eca37485b5f9a8b (diff) |
Refactor emails about password reset away from the generic Mail class into their own sub-class. (#18616)
Diffstat (limited to 'plugins/Login')
-rw-r--r-- | plugins/Login/Emails/PasswordResetEmail.php | 68 | ||||
-rw-r--r-- | plugins/Login/PasswordResetter.php | 16 |
2 files changed, 70 insertions, 14 deletions
diff --git a/plugins/Login/Emails/PasswordResetEmail.php b/plugins/Login/Emails/PasswordResetEmail.php new file mode 100644 index 0000000000..bdded77c45 --- /dev/null +++ b/plugins/Login/Emails/PasswordResetEmail.php @@ -0,0 +1,68 @@ +<?php +/** + * Matomo - free/libre analytics platform + * + * @link https://matomo.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ + +namespace Piwik\Plugins\Login\Emails; + +use Piwik\Common; +use Piwik\Config; +use Piwik\Mail; +use Piwik\Piwik; + +class PasswordResetEmail extends Mail +{ + /** + * @var string + */ + private $login; + + /** + * @var string + */ + private $ip; + + /** + * @var string + */ + private $resetUrl; + + public function __construct($login, $ip, $resetUrl) + { + parent::__construct(); + + $this->login = $login; + $this->ip = $ip; + $this->resetUrl = $resetUrl; + + $this->setUpEmail(); + } + + private function setUpEmail() + { + $replytoEmailName = Config::getInstance()->General['login_password_recovery_replyto_email_name']; + $replytoEmailAddress = Config::getInstance()->General['login_password_recovery_replyto_email_address']; + + $this->setSubject($this->getDefaultSubject()); + $this->addReplyTo($replytoEmailAddress, $replytoEmailName); + $this->setWrappedHtmlBody($this->getDefaultBodyText()); + } + + private function getDefaultSubject() + { + return Piwik::translate('Login_MailTopicPasswordChange'); + } + + private function getDefaultBodyText() + { + return '<p>' . str_replace( + "\n\n", + "</p><p>", + Piwik::translate('Login_MailPasswordChangeBody2', [Common::sanitizeInputValue($this->login), Common::sanitizeInputValue($this->ip), Common::sanitizeInputValue($this->resetUrl)]) + ) . "</p>"; + } +}
\ No newline at end of file diff --git a/plugins/Login/PasswordResetter.php b/plugins/Login/PasswordResetter.php index db93ddc2b9..7b6a5efa2c 100644 --- a/plugins/Login/PasswordResetter.php +++ b/plugins/Login/PasswordResetter.php @@ -11,11 +11,10 @@ use Exception; use Piwik\Access; use Piwik\Auth\Password; use Piwik\Common; -use Piwik\Config; use Piwik\IP; -use Piwik\Mail; use Piwik\Option; use Piwik\Piwik; +use Piwik\Plugins\Login\Emails\PasswordResetEmail; use Piwik\Plugins\UsersManager\Model; use Piwik\Plugins\UsersManager\UsersManager; use Piwik\Plugins\UsersManager\API as UsersManagerAPI; @@ -440,15 +439,8 @@ class PasswordResetter . "&resetToken=" . urlencode($resetToken); // send email with new password - $mail = new Mail(); + $mail = new PasswordResetEmail($login, $ip, $url); $mail->addTo($email, $login); - $mail->setSubject(Piwik::translate('Login_MailTopicPasswordChange')); - $bodyText = '<p>' . str_replace( - "\n\n", - "</p><p>", - Piwik::translate('Login_MailPasswordChangeBody2', [Common::sanitizeInputValue($login), Common::sanitizeInputValue($ip), Common::sanitizeInputValue($url)]) - ) . "</p>"; - $mail->setWrappedHtmlBody($bodyText); if ($this->emailFromAddress || $this->emailFromName) { $mail->setFrom($this->emailFromAddress, $this->emailFromName); @@ -456,10 +448,6 @@ class PasswordResetter $mail->setDefaultFromPiwik(); } - $replytoEmailName = Config::getInstance()->General['login_password_recovery_replyto_email_name']; - $replytoEmailAddress = Config::getInstance()->General['login_password_recovery_replyto_email_address']; - $mail->addReplyTo($replytoEmailAddress, $replytoEmailName); - @$mail->send(); } |