From 6e7c37cbd33b1e9d017f87e8ce1e87cfda979e01 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 02d96b648ab..e4f96541b7b 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -383,8 +383,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, @@ -461,8 +460,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, @@ -529,8 +527,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 d5548aee09c..13fb6fee5cb 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 79749cedfe0..245e19cee81 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 b24f72316ba..0e42e745e48 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 95c4d928312..83653b474ed 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -727,8 +727,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 056f4d223bc..2c4940db8fa 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 af16a8a239a..c283d346745 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 44cece1d658..974a95618ad 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 242fa5cb662..781277b66a6 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 cee684d1cbf..9fc6a4a3c70 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,