Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam <8619576+samjf@users.noreply.github.com>2022-01-14 04:05:14 +0300
committerGitHub <noreply@github.com>2022-01-14 04:05:14 +0300
commit8e1aabfc68ad16ea8af059a9108a54e6053aa414 (patch)
tree2082e02319f8b1b7f5d3c859eac4f8ad54572076 /plugins
parent30cab7d1cd8080f3fb88004a2eca37485b5f9a8b (diff)
Refactor emails about password reset away from the generic Mail class into their own sub-class. (#18616)
Diffstat (limited to 'plugins')
-rw-r--r--plugins/Login/Emails/PasswordResetEmail.php68
-rw-r--r--plugins/Login/PasswordResetter.php16
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();
}