From 6dbb64c4a2748467a61e5ed7821ac6526c86a093 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 4 Sep 2017 15:07:19 +0200 Subject: [PATCH] Merge setMetaData into constructor This ensures that the meta data is set in the beginning Signed-off-by: Joas Schilling --- apps/sharebymail/lib/ShareByMailProvider.php | 9 +++------ core/Controller/LostController.php | 3 +-- lib/private/Mail/EMailTemplate.php | 16 +++++----------- lib/private/Mail/Mailer.php | 19 ++++++++++++++++--- lib/private/Share20/Manager.php | 3 +-- lib/public/Mail/IEMailTemplate.php | 6 ------ lib/public/Mail/IMailer.php | 6 ++++-- .../Controller/MailSettingsController.php | 4 +--- settings/Hooks.php | 6 ++---- settings/Mailer/NewUserMailHelper.php | 3 +-- 10 files changed, 34 insertions(+), 41 deletions(-) diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php index e5ae64ba12..9a0678f5fe 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -384,8 +384,7 @@ class ShareByMailProvider implements IShareProvider { $message = $this->mailer->createMessage(); - $emailTemplate = $this->mailer->createEMailTemplate(); - $emailTemplate->setMetaData('sharebymail.RecipientNotification', [ + $emailTemplate = $this->mailer->createEMailTemplate('sharebymail.RecipientNotification', [ 'filename' => $filename, 'link' => $link, 'initiator' => $initiatorDisplayName, @@ -462,8 +461,7 @@ class ShareByMailProvider implements IShareProvider { $message = $this->mailer->createMessage(); - $emailTemplate = $this->mailer->createEMailTemplate(); - $emailTemplate->setMetaData('sharebymail.RecipientPasswordNotification', [ + $emailTemplate = $this->mailer->createEMailTemplate('sharebymail.RecipientPasswordNotification', [ 'filename' => $filename, 'password' => $password, 'initiator' => $initiatorDisplayName, @@ -530,8 +528,7 @@ class ShareByMailProvider implements IShareProvider { $bodyPart = $this->l->t("You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.", [$filename, $shareWith, $this->defaults->getName()]); $message = $this->mailer->createMessage(); - $emailTemplate = $this->mailer->createEMailTemplate(); - $emailTemplate->setMetaData('sharebymail.OwnerPasswordNotification', [ + $emailTemplate = $this->mailer->createEMailTemplate('sharebymail.OwnerPasswordNotification', [ 'filename' => $filename, 'password' => $password, 'initiator' => $initiatorDisplayName, diff --git a/core/Controller/LostController.php b/core/Controller/LostController.php index 45423b41e8..4c59b0a1c0 100644 --- a/core/Controller/LostController.php +++ b/core/Controller/LostController.php @@ -305,8 +305,7 @@ class LostController extends Controller { $link = $this->urlGenerator->linkToRouteAbsolute('core.lost.resetform', array('userId' => $user->getUID(), 'token' => $token)); - $emailTemplate = $this->mailer->createEMailTemplate(); - $emailTemplate->setMetaData('core.ResetPassword', [ + $emailTemplate = $this->mailer->createEMailTemplate('core.ResetPassword', [ 'link' => $link, ]); diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php index 32cb01f30b..da3341b670 100644 --- a/lib/private/Mail/EMailTemplate.php +++ b/lib/private/Mail/EMailTemplate.php @@ -342,24 +342,18 @@ EOF; * @param Defaults $themingDefaults * @param IURLGenerator $urlGenerator * @param IL10N $l10n + * @param string $emailId + * @param array $data */ public function __construct(Defaults $themingDefaults, IURLGenerator $urlGenerator, - IL10N $l10n) { + IL10N $l10n, + $emailId, + array $data) { $this->themingDefaults = $themingDefaults; $this->urlGenerator = $urlGenerator; $this->l10n = $l10n; $this->htmlBody .= $this->head; - } - - /** - * Set meta data of an email - * - * @param string $emailId - * @param array $data - * @since 12.0.3 - */ - public function setMetaData($emailId, array $data = []) { $this->emailId = $emailId; $this->data = $data; } diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php index d232587df6..45405157d2 100644 --- a/lib/private/Mail/Mailer.php +++ b/lib/private/Mail/Mailer.php @@ -26,6 +26,7 @@ use OCP\Defaults; use OCP\IConfig; use OCP\IL10N; use OCP\IURLGenerator; +use OCP\Mail\IEMailTemplate; use OCP\Mail\IMailer; use OCP\ILogger; @@ -89,21 +90,33 @@ class Mailer implements IMailer { return new Message(new \Swift_Message()); } - public function createEMailTemplate() { + /** + * Creates a new email template object + * + * @param string $emailId + * @param array $data + * @return IEMailTemplate + * @since 12.0.0 + */ + public function createEMailTemplate($emailId, array $data = []) { $class = $this->config->getSystemValue('mail_template_class', ''); if ($class !== '' && class_exists($class) && is_a($class, EMailTemplate::class, true)) { return new $class( $this->defaults, $this->urlGenerator, - $this->l10n + $this->l10n, + $emailId, + $data ); } return new EMailTemplate( $this->defaults, $this->urlGenerator, - $this->l10n + $this->l10n, + $emailId, + $data ); } diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 46e3bd75c5..886a319b1e 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -696,8 +696,7 @@ class Manager implements IManager { $message = $this->mailer->createMessage(); - $emailTemplate = $this->mailer->createEMailTemplate(); - $emailTemplate->setMetaData('files_sharing.RecipientNotification', [ + $emailTemplate = $this->mailer->createEMailTemplate('files_sharing.RecipientNotification', [ 'filename' => $filename, 'link' => $link, 'initiator' => $initiatorDisplayName, diff --git a/lib/public/Mail/IEMailTemplate.php b/lib/public/Mail/IEMailTemplate.php index 2ff4a486f7..6c71c0c047 100644 --- a/lib/public/Mail/IEMailTemplate.php +++ b/lib/public/Mail/IEMailTemplate.php @@ -51,12 +51,6 @@ namespace OCP\Mail; * @since 12.0.0 */ interface IEMailTemplate { - /** - * Set meta data of an email - * - * @since 12.0.3 - */ - public function setMetaData($emailId, array $data = []); /** * Adds a header to the email diff --git a/lib/public/Mail/IMailer.php b/lib/public/Mail/IMailer.php index af16a8a239..c283d34674 100644 --- a/lib/public/Mail/IMailer.php +++ b/lib/public/Mail/IMailer.php @@ -57,10 +57,12 @@ interface IMailer { /** * Creates a new email template object * + * @param string $emailId + * @param array $data * @return IEMailTemplate - * @since 12.0.0 + * @since 12.0.0 Parameters added in 12.0.3 */ - public function createEMailTemplate(); + public function createEMailTemplate($emailId, array $data = []); /** * Send the specified message. Also sets the from address to the value defined in config.php diff --git a/settings/Controller/MailSettingsController.php b/settings/Controller/MailSettingsController.php index 44cece1d65..974a95618a 100644 --- a/settings/Controller/MailSettingsController.php +++ b/settings/Controller/MailSettingsController.php @@ -147,9 +147,7 @@ class MailSettingsController extends Controller { try { $displayName = $this->userSession->getUser()->getDisplayName(); - $template = $this->mailer->createEMailTemplate(); - - $template->setMetaData('settings.TestEmail', [ + $template = $this->mailer->createEMailTemplate('settings.TestEmail', [ 'displayname' => $displayName, ]); diff --git a/settings/Hooks.php b/settings/Hooks.php index f97145da0c..6f53779651 100644 --- a/settings/Hooks.php +++ b/settings/Hooks.php @@ -117,8 +117,7 @@ class Hooks { $this->activityManager->publish($event); if ($user->getEMailAddress() !== null) { - $template = $this->mailer->createEMailTemplate(); - $template->setMetaData('settings.PasswordChanged', [ + $template = $this->mailer->createEMailTemplate('settings.PasswordChanged', [ 'displayname' => $user->getDisplayName(), 'emailAddress' => $user->getEMailAddress(), 'instanceUrl' => $instanceUrl, @@ -188,8 +187,7 @@ class Hooks { if ($oldMailAddress !== null) { - $template = $this->mailer->createEMailTemplate(); - $template->setMetaData('settings.EmailChanged', [ + $template = $this->mailer->createEMailTemplate('settings.EmailChanged', [ 'displayname' => $user->getDisplayName(), 'newEMailAddress' => $user->getEMailAddress(), 'oldEMailAddress' => $oldMailAddress, diff --git a/settings/Mailer/NewUserMailHelper.php b/settings/Mailer/NewUserMailHelper.php index cee684d1cb..9fc6a4a3c7 100644 --- a/settings/Mailer/NewUserMailHelper.php +++ b/settings/Mailer/NewUserMailHelper.php @@ -116,8 +116,7 @@ class NewUserMailHelper { $displayName = $user->getDisplayName(); $userId = $user->getUID(); - $emailTemplate = $this->mailer->createEMailTemplate(); - $emailTemplate->setMetaData('settings.Welcome', [ + $emailTemplate = $this->mailer->createEMailTemplate('settings.Welcome', [ 'link' => $link, 'displayname' => $displayName, 'userid' => $userId,