Merge setMetaData into constructor

This ensures that the meta data is set in the beginning

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2017-09-04 15:07:19 +02:00
parent 95ecab0356
commit 6dbb64c4a2
No known key found for this signature in database
GPG Key ID: E166FD8976B3BAC8
10 changed files with 34 additions and 41 deletions

View File

@ -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,

View File

@ -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,
]);

View File

@ -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;
}

View File

@ -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
);
}

View File

@ -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,

View File

@ -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

View File

@ -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

View File

@ -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,
]);

View File

@ -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,

View File

@ -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,