Merge pull request #6358 from nextcloud/fix-mixup-of-id-and-name
Set the meta data before everything
This commit is contained in:
commit
15cd21d252
|
@ -384,8 +384,7 @@ class ShareByMailProvider implements IShareProvider {
|
||||||
|
|
||||||
$message = $this->mailer->createMessage();
|
$message = $this->mailer->createMessage();
|
||||||
|
|
||||||
$emailTemplate = $this->mailer->createEMailTemplate();
|
$emailTemplate = $this->mailer->createEMailTemplate('sharebymail.RecipientNotification', [
|
||||||
$emailTemplate->setMetaData('sharebymail.RecipientNotification', [
|
|
||||||
'filename' => $filename,
|
'filename' => $filename,
|
||||||
'link' => $link,
|
'link' => $link,
|
||||||
'initiator' => $initiatorDisplayName,
|
'initiator' => $initiatorDisplayName,
|
||||||
|
@ -462,8 +461,7 @@ class ShareByMailProvider implements IShareProvider {
|
||||||
|
|
||||||
$message = $this->mailer->createMessage();
|
$message = $this->mailer->createMessage();
|
||||||
|
|
||||||
$emailTemplate = $this->mailer->createEMailTemplate();
|
$emailTemplate = $this->mailer->createEMailTemplate('sharebymail.RecipientPasswordNotification', [
|
||||||
$emailTemplate->setMetaData('sharebymail.RecipientPasswordNotification', [
|
|
||||||
'filename' => $filename,
|
'filename' => $filename,
|
||||||
'password' => $password,
|
'password' => $password,
|
||||||
'initiator' => $initiatorDisplayName,
|
'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()]);
|
$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();
|
$message = $this->mailer->createMessage();
|
||||||
$emailTemplate = $this->mailer->createEMailTemplate();
|
$emailTemplate = $this->mailer->createEMailTemplate('sharebymail.OwnerPasswordNotification', [
|
||||||
$emailTemplate->setMetaData('sharebymail.OwnerPasswordNotification', [
|
|
||||||
'filename' => $filename,
|
'filename' => $filename,
|
||||||
'password' => $password,
|
'password' => $password,
|
||||||
'initiator' => $initiatorDisplayName,
|
'initiator' => $initiatorDisplayName,
|
||||||
|
|
|
@ -305,8 +305,7 @@ class LostController extends Controller {
|
||||||
|
|
||||||
$link = $this->urlGenerator->linkToRouteAbsolute('core.lost.resetform', array('userId' => $user->getUID(), 'token' => $token));
|
$link = $this->urlGenerator->linkToRouteAbsolute('core.lost.resetform', array('userId' => $user->getUID(), 'token' => $token));
|
||||||
|
|
||||||
$emailTemplate = $this->mailer->createEMailTemplate();
|
$emailTemplate = $this->mailer->createEMailTemplate('core.ResetPassword', [
|
||||||
$emailTemplate->setMetaData('core.ResetPassword', [
|
|
||||||
'link' => $link,
|
'link' => $link,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
@ -342,24 +342,18 @@ EOF;
|
||||||
* @param Defaults $themingDefaults
|
* @param Defaults $themingDefaults
|
||||||
* @param IURLGenerator $urlGenerator
|
* @param IURLGenerator $urlGenerator
|
||||||
* @param IL10N $l10n
|
* @param IL10N $l10n
|
||||||
|
* @param string $emailId
|
||||||
|
* @param array $data
|
||||||
*/
|
*/
|
||||||
public function __construct(Defaults $themingDefaults,
|
public function __construct(Defaults $themingDefaults,
|
||||||
IURLGenerator $urlGenerator,
|
IURLGenerator $urlGenerator,
|
||||||
IL10N $l10n) {
|
IL10N $l10n,
|
||||||
|
$emailId,
|
||||||
|
array $data) {
|
||||||
$this->themingDefaults = $themingDefaults;
|
$this->themingDefaults = $themingDefaults;
|
||||||
$this->urlGenerator = $urlGenerator;
|
$this->urlGenerator = $urlGenerator;
|
||||||
$this->l10n = $l10n;
|
$this->l10n = $l10n;
|
||||||
$this->htmlBody .= $this->head;
|
$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->emailId = $emailId;
|
||||||
$this->data = $data;
|
$this->data = $data;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ use OCP\Defaults;
|
||||||
use OCP\IConfig;
|
use OCP\IConfig;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use OCP\IURLGenerator;
|
use OCP\IURLGenerator;
|
||||||
|
use OCP\Mail\IEMailTemplate;
|
||||||
use OCP\Mail\IMailer;
|
use OCP\Mail\IMailer;
|
||||||
use OCP\ILogger;
|
use OCP\ILogger;
|
||||||
|
|
||||||
|
@ -89,21 +90,33 @@ class Mailer implements IMailer {
|
||||||
return new Message(new \Swift_Message());
|
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', '');
|
$class = $this->config->getSystemValue('mail_template_class', '');
|
||||||
|
|
||||||
if ($class !== '' && class_exists($class) && is_a($class, EMailTemplate::class, true)) {
|
if ($class !== '' && class_exists($class) && is_a($class, EMailTemplate::class, true)) {
|
||||||
return new $class(
|
return new $class(
|
||||||
$this->defaults,
|
$this->defaults,
|
||||||
$this->urlGenerator,
|
$this->urlGenerator,
|
||||||
$this->l10n
|
$this->l10n,
|
||||||
|
$emailId,
|
||||||
|
$data
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new EMailTemplate(
|
return new EMailTemplate(
|
||||||
$this->defaults,
|
$this->defaults,
|
||||||
$this->urlGenerator,
|
$this->urlGenerator,
|
||||||
$this->l10n
|
$this->l10n,
|
||||||
|
$emailId,
|
||||||
|
$data
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -696,8 +696,7 @@ class Manager implements IManager {
|
||||||
|
|
||||||
$message = $this->mailer->createMessage();
|
$message = $this->mailer->createMessage();
|
||||||
|
|
||||||
$emailTemplate = $this->mailer->createEMailTemplate();
|
$emailTemplate = $this->mailer->createEMailTemplate('files_sharing.RecipientNotification', [
|
||||||
$emailTemplate->setMetaData('files_sharing.RecipientNotification', [
|
|
||||||
'filename' => $filename,
|
'filename' => $filename,
|
||||||
'link' => $link,
|
'link' => $link,
|
||||||
'initiator' => $initiatorDisplayName,
|
'initiator' => $initiatorDisplayName,
|
||||||
|
|
|
@ -51,12 +51,6 @@ namespace OCP\Mail;
|
||||||
* @since 12.0.0
|
* @since 12.0.0
|
||||||
*/
|
*/
|
||||||
interface IEMailTemplate {
|
interface IEMailTemplate {
|
||||||
/**
|
|
||||||
* Set meta data of an email
|
|
||||||
*
|
|
||||||
* @since 12.0.3
|
|
||||||
*/
|
|
||||||
public function setMetaData($emailId, array $data = []);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a header to the email
|
* Adds a header to the email
|
||||||
|
|
|
@ -57,10 +57,12 @@ interface IMailer {
|
||||||
/**
|
/**
|
||||||
* Creates a new email template object
|
* Creates a new email template object
|
||||||
*
|
*
|
||||||
|
* @param string $emailId
|
||||||
|
* @param array $data
|
||||||
* @return IEMailTemplate
|
* @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
|
* Send the specified message. Also sets the from address to the value defined in config.php
|
||||||
|
|
|
@ -147,9 +147,7 @@ class MailSettingsController extends Controller {
|
||||||
try {
|
try {
|
||||||
$displayName = $this->userSession->getUser()->getDisplayName();
|
$displayName = $this->userSession->getUser()->getDisplayName();
|
||||||
|
|
||||||
$template = $this->mailer->createEMailTemplate();
|
$template = $this->mailer->createEMailTemplate('settings.TestEmail', [
|
||||||
|
|
||||||
$template->setMetaData('settings.TestEmail', [
|
|
||||||
'displayname' => $displayName,
|
'displayname' => $displayName,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
|
@ -117,8 +117,7 @@ class Hooks {
|
||||||
$this->activityManager->publish($event);
|
$this->activityManager->publish($event);
|
||||||
|
|
||||||
if ($user->getEMailAddress() !== null) {
|
if ($user->getEMailAddress() !== null) {
|
||||||
$template = $this->mailer->createEMailTemplate();
|
$template = $this->mailer->createEMailTemplate('settings.PasswordChanged', [
|
||||||
$template->setMetaData('settings.PasswordChanged', [
|
|
||||||
'displayname' => $user->getDisplayName(),
|
'displayname' => $user->getDisplayName(),
|
||||||
'emailAddress' => $user->getEMailAddress(),
|
'emailAddress' => $user->getEMailAddress(),
|
||||||
'instanceUrl' => $instanceUrl,
|
'instanceUrl' => $instanceUrl,
|
||||||
|
@ -188,8 +187,7 @@ class Hooks {
|
||||||
|
|
||||||
|
|
||||||
if ($oldMailAddress !== null) {
|
if ($oldMailAddress !== null) {
|
||||||
$template = $this->mailer->createEMailTemplate();
|
$template = $this->mailer->createEMailTemplate('settings.EmailChanged', [
|
||||||
$template->setMetaData('settings.EmailChanged', [
|
|
||||||
'displayname' => $user->getDisplayName(),
|
'displayname' => $user->getDisplayName(),
|
||||||
'newEMailAddress' => $user->getEMailAddress(),
|
'newEMailAddress' => $user->getEMailAddress(),
|
||||||
'oldEMailAddress' => $oldMailAddress,
|
'oldEMailAddress' => $oldMailAddress,
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
|
|
||||||
namespace OC\Settings\Mailer;
|
namespace OC\Settings\Mailer;
|
||||||
|
|
||||||
use OC\Mail\EMailTemplate;
|
|
||||||
use OCP\Mail\IEMailTemplate;
|
use OCP\Mail\IEMailTemplate;
|
||||||
use OCP\AppFramework\Utility\ITimeFactory;
|
use OCP\AppFramework\Utility\ITimeFactory;
|
||||||
use OCP\Defaults;
|
use OCP\Defaults;
|
||||||
|
@ -96,7 +95,7 @@ class NewUserMailHelper {
|
||||||
/**
|
/**
|
||||||
* @param IUser $user
|
* @param IUser $user
|
||||||
* @param bool $generatePasswordResetToken
|
* @param bool $generatePasswordResetToken
|
||||||
* @return EMailTemplate
|
* @return IEMailTemplate
|
||||||
*/
|
*/
|
||||||
public function generateTemplate(IUser $user, $generatePasswordResetToken = false) {
|
public function generateTemplate(IUser $user, $generatePasswordResetToken = false) {
|
||||||
if ($generatePasswordResetToken) {
|
if ($generatePasswordResetToken) {
|
||||||
|
@ -114,11 +113,18 @@ class NewUserMailHelper {
|
||||||
} else {
|
} else {
|
||||||
$link = $this->urlGenerator->getAbsoluteURL('/');
|
$link = $this->urlGenerator->getAbsoluteURL('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
$emailTemplate = $this->mailer->createEMailTemplate();
|
|
||||||
$emailTemplate->addHeader();
|
|
||||||
$displayName = $user->getDisplayName();
|
$displayName = $user->getDisplayName();
|
||||||
$userId = $user->getUID();
|
$userId = $user->getUID();
|
||||||
|
|
||||||
|
$emailTemplate = $this->mailer->createEMailTemplate('settings.Welcome', [
|
||||||
|
'link' => $link,
|
||||||
|
'displayname' => $displayName,
|
||||||
|
'userid' => $userId,
|
||||||
|
'instancename' => $this->themingDefaults->getName(),
|
||||||
|
'resetTokenGenerated' => $generatePasswordResetToken,
|
||||||
|
]);
|
||||||
|
|
||||||
|
$emailTemplate->addHeader();
|
||||||
if ($displayName === $userId) {
|
if ($displayName === $userId) {
|
||||||
$emailTemplate->addHeading($this->l10n->t('Welcome aboard'));
|
$emailTemplate->addHeading($this->l10n->t('Welcome aboard'));
|
||||||
} else {
|
} else {
|
||||||
|
@ -139,14 +145,6 @@ class NewUserMailHelper {
|
||||||
);
|
);
|
||||||
$emailTemplate->addFooter();
|
$emailTemplate->addFooter();
|
||||||
|
|
||||||
$emailTemplate->setMetaData('settings.Welcome', [
|
|
||||||
'link' => $link,
|
|
||||||
'displayname' => $displayName,
|
|
||||||
'userid' => $userId,
|
|
||||||
'instancename' => $this->themingDefaults->getName(),
|
|
||||||
'resetTokenGenerated' => $generatePasswordResetToken,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return $emailTemplate;
|
return $emailTemplate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,9 @@ class NewUserMailHelperTest extends TestCase {
|
||||||
$template = new EMailTemplate(
|
$template = new EMailTemplate(
|
||||||
$this->defaults,
|
$this->defaults,
|
||||||
$this->urlGenerator,
|
$this->urlGenerator,
|
||||||
$this->l10n
|
$this->l10n,
|
||||||
|
'test.TestTemplate',
|
||||||
|
[]
|
||||||
);
|
);
|
||||||
$this->mailer->method('createEMailTemplate')
|
$this->mailer->method('createEMailTemplate')
|
||||||
->will($this->returnValue($template));
|
->will($this->returnValue($template));
|
||||||
|
|
|
@ -49,7 +49,9 @@ class EMailTemplateTest extends TestCase {
|
||||||
$this->emailTemplate = new EMailTemplate(
|
$this->emailTemplate = new EMailTemplate(
|
||||||
$this->defaults,
|
$this->defaults,
|
||||||
$this->urlGenerator,
|
$this->urlGenerator,
|
||||||
$this->l10n
|
$this->l10n,
|
||||||
|
'test.TestTemplate',
|
||||||
|
[]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -133,6 +133,6 @@ class MailerTest extends TestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testCreateEMailTemplate() {
|
public function testCreateEMailTemplate() {
|
||||||
$this->assertSame(EMailTemplate::class, get_class($this->mailer->createEMailTemplate()));
|
$this->assertSame(EMailTemplate::class, get_class($this->mailer->createEMailTemplate('tests.MailerTest')));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue