mirror of
https://github.com/wallabag/wallabag.git
synced 2024-11-26 11:01:04 +00:00
parent
e72a943ad2
commit
7ce895bf5e
6 changed files with 62 additions and 39 deletions
|
@ -20,11 +20,11 @@ class AuthCodeMailer implements AuthCodeMailerInterface
|
||||||
private $mailer;
|
private $mailer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Translator for email content.
|
* Twig to render the html's email.
|
||||||
*
|
*
|
||||||
* @var TranslatorInterface
|
* @var \Twig_Environment
|
||||||
*/
|
*/
|
||||||
private $translator;
|
private $twig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sender email address.
|
* Sender email address.
|
||||||
|
@ -51,15 +51,15 @@ class AuthCodeMailer implements AuthCodeMailerInterface
|
||||||
* Initialize the auth code mailer with the SwiftMailer object.
|
* Initialize the auth code mailer with the SwiftMailer object.
|
||||||
*
|
*
|
||||||
* @param \Swift_Mailer $mailer
|
* @param \Swift_Mailer $mailer
|
||||||
* @param TranslatorInterface $translator
|
* @param \Twig_Environment $twig
|
||||||
* @param string $senderEmail
|
* @param string $senderEmail
|
||||||
* @param string $senderName
|
* @param string $senderName
|
||||||
* @param string $supportUrl
|
* @param string $supportUrl
|
||||||
*/
|
*/
|
||||||
public function __construct(\Swift_Mailer $mailer, TranslatorInterface $translator, $senderEmail, $senderName, $supportUrl)
|
public function __construct(\Swift_Mailer $mailer, \Twig_Environment $twig, $senderEmail, $senderName, $supportUrl)
|
||||||
{
|
{
|
||||||
$this->mailer = $mailer;
|
$this->mailer = $mailer;
|
||||||
$this->translator = $translator;
|
$this->twig = $twig;
|
||||||
$this->senderEmail = $senderEmail;
|
$this->senderEmail = $senderEmail;
|
||||||
$this->senderName = $senderName;
|
$this->senderName = $senderName;
|
||||||
$this->supportUrl = $supportUrl;
|
$this->supportUrl = $supportUrl;
|
||||||
|
@ -72,20 +72,27 @@ class AuthCodeMailer implements AuthCodeMailerInterface
|
||||||
*/
|
*/
|
||||||
public function sendAuthCode(TwoFactorInterface $user)
|
public function sendAuthCode(TwoFactorInterface $user)
|
||||||
{
|
{
|
||||||
|
$template = $this->twig->loadTemplate('@WallabagUserBundle/Resources/views/TwoFactor/email_auth_code.html.twig');
|
||||||
|
|
||||||
|
$subject = $template->renderBlock('subject', array());
|
||||||
|
$bodyHtml = $template->renderBlock('body_html', [
|
||||||
|
'user' => $user->getName(),
|
||||||
|
'code' => $user->getEmailAuthCode(),
|
||||||
|
'support' => $this->supportUrl,
|
||||||
|
]);
|
||||||
|
$bodyText = $template->renderBlock('body_text', [
|
||||||
|
'user' => $user->getName(),
|
||||||
|
'code' => $user->getEmailAuthCode(),
|
||||||
|
'support' => $this->supportUrl,
|
||||||
|
]);
|
||||||
|
|
||||||
$message = new \Swift_Message();
|
$message = new \Swift_Message();
|
||||||
$message
|
$message
|
||||||
->setTo($user->getEmail())
|
->setTo($user->getEmail())
|
||||||
->setFrom($this->senderEmail, $this->senderName)
|
->setFrom($this->senderEmail, $this->senderName)
|
||||||
->setSubject($this->translator->trans('auth_code.mailer.subject', array(), 'wallabag_user'))
|
->setSubject($subject)
|
||||||
->setBody($this->translator->trans(
|
->setBody($bodyText, 'text/plain')
|
||||||
'auth_code.mailer.body',
|
->addPart($bodyHtml, 'text/html')
|
||||||
[
|
|
||||||
'%user%' => $user->getName(),
|
|
||||||
'%code%' => $user->getEmailAuthCode(),
|
|
||||||
'%support%' => $this->supportUrl,
|
|
||||||
],
|
|
||||||
'wallabag_user'
|
|
||||||
))
|
|
||||||
;
|
;
|
||||||
|
|
||||||
$this->mailer->send($message);
|
$this->mailer->send($message);
|
||||||
|
|
|
@ -3,7 +3,7 @@ services:
|
||||||
class: Wallabag\UserBundle\Mailer\AuthCodeMailer
|
class: Wallabag\UserBundle\Mailer\AuthCodeMailer
|
||||||
arguments:
|
arguments:
|
||||||
- "@mailer"
|
- "@mailer"
|
||||||
- "@translator"
|
- "@twig"
|
||||||
- "%scheb_two_factor.email.sender_email%"
|
- "%scheb_two_factor.email.sender_email%"
|
||||||
- "%scheb_two_factor.email.sender_name%"
|
- "%scheb_two_factor.email.sender_name%"
|
||||||
- "%wallabag_support_url%"
|
- "%wallabag_support_url%"
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
# Two factor mail
|
# Two factor mail
|
||||||
auth_code.mailer.subject: 'Wallabag authentication Code'
|
auth_code.mailer.subject: 'Wallabag authentication Code'
|
||||||
auth_code.mailer.body: |
|
auth_code.mailer.body.hello: "Hi %user%,"
|
||||||
Hi %user%,
|
auth_code.mailer.body.content: |
|
||||||
|
|
||||||
Since you enable two factor authentication on your wallabag account and you just logged in from a new device (computer, phone, etc.), we send you a code to validate your connection.
|
Since you enable two factor authentication on your wallabag account and you just logged in from a new device (computer, phone, etc.), we send you a code to validate your connection.
|
||||||
Here is the code: %code%
|
Here is the code: %code%
|
||||||
|
auth_code.mailer.body.signature: |
|
||||||
Please don't hesitate to contact us if you have any problems: %support%
|
Please don't hesitate to contact us if you have any problems: %support%
|
||||||
The wallabag team
|
The wallabag team
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
# Two factor mail
|
# Two factor mail
|
||||||
auth_code.mailer.subject: "Code d'authentification wallabag"
|
auth_code.mailer.subject: "Code d'authentification wallabag"
|
||||||
auth_code.mailer.body: |
|
auth_code.mailer.body.hello: "Bonjour %user%,"
|
||||||
Bonjour %user%,
|
auth_code.mailer.body.content: |
|
||||||
|
|
||||||
Comme vous avez activé la double authentification sur votre compte wallabag et que vous venez de vous connecter depuis un nouvel appareil (ordinateur, téléphone, etc.), nous vous envoyons un code pour valider votre connexion.
|
Comme vous avez activé la double authentification sur votre compte wallabag et que vous venez de vous connecter depuis un nouvel appareil (ordinateur, téléphone, etc.), nous vous envoyons un code pour valider votre connexion.
|
||||||
Voici le code à renseigner: %code%
|
Voici le code à renseigner: %code%
|
||||||
|
auth_code.mailer.body.signature: |
|
||||||
Si vous avez un problème de connexion, n'hésitez pas à contacter le support: %support%
|
Si vous avez un problème de connexion, n'hésitez pas à contacter le support: %support%
|
||||||
L'équipe wallabag
|
L'équipe wallabag
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
{% block subject %}
|
||||||
|
{{ "auth_code.mailer.subject"|trans({}, 'wallabag_user') }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body_html %}
|
||||||
|
<p><b>{{ "auth_code.mailer.body.hello"|trans({'%user%': user}, 'wallabag_user') }}</b></p>
|
||||||
|
|
||||||
|
<p>{{ "auth_code.mailer.body.content"|trans({'%code%': code}, 'wallabag_user') }}</p>
|
||||||
|
|
||||||
|
<p>{{ "auth_code.mailer.body.signature"|trans({'%support%': support}, 'wallabag_user') }}</p>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body_text %}
|
||||||
|
{{ "auth_code.mailer.body.hello"|trans({'%user%': user}, 'wallabag_user') }}
|
||||||
|
|
||||||
|
{{ "auth_code.mailer.body.content"|trans({'%code%': code}, 'wallabag_user') }}
|
||||||
|
{{ "auth_code.mailer.body.signature"|trans({'%support%': support}, 'wallabag_user') }}
|
||||||
|
{% endblock %}
|
|
@ -27,7 +27,7 @@ class AuthCodeMailerTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
protected $mailer;
|
protected $mailer;
|
||||||
protected $spool;
|
protected $spool;
|
||||||
protected $translator;
|
protected $twig;
|
||||||
|
|
||||||
protected function setUp()
|
protected function setUp()
|
||||||
{
|
{
|
||||||
|
@ -38,12 +38,11 @@ class AuthCodeMailerTest extends \PHPUnit_Framework_TestCase
|
||||||
);
|
);
|
||||||
$this->mailer = new \Swift_Mailer($transport);
|
$this->mailer = new \Swift_Mailer($transport);
|
||||||
|
|
||||||
$this->translator = new Translator('en');
|
$this->twig = new \Twig_Environment(new \Twig_Loader_Array(array('@WallabagUserBundle/Resources/views/TwoFactor/email_auth_code.html.twig' => '
|
||||||
$this->translator->addLoader('array', new ArrayLoader());
|
{% block subject %}subject{% endblock %}
|
||||||
$this->translator->addResource('array', array(
|
{% block body_html %}html body{% endblock %}
|
||||||
'auth_code.mailer.subject' => 'auth_code subject',
|
{% block body_text %}text body{% endblock %}
|
||||||
'auth_code.mailer.body' => 'Hi %user%, here is the code: %code% and the support: %support%',
|
')));
|
||||||
), 'en', 'wallabag_user');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testSendEmail()
|
public function testSendEmail()
|
||||||
|
@ -56,7 +55,7 @@ class AuthCodeMailerTest extends \PHPUnit_Framework_TestCase
|
||||||
|
|
||||||
$authCodeMailer = new AuthCodeMailer(
|
$authCodeMailer = new AuthCodeMailer(
|
||||||
$this->mailer,
|
$this->mailer,
|
||||||
$this->translator,
|
$this->twig,
|
||||||
'nobody@test.io',
|
'nobody@test.io',
|
||||||
'wallabag test',
|
'wallabag test',
|
||||||
'http://0.0.0.0'
|
'http://0.0.0.0'
|
||||||
|
@ -69,7 +68,8 @@ class AuthCodeMailerTest extends \PHPUnit_Framework_TestCase
|
||||||
$msg = $this->spool->getMessages()[0];
|
$msg = $this->spool->getMessages()[0];
|
||||||
$this->assertArrayHasKey('test@wallabag.io', $msg->getTo());
|
$this->assertArrayHasKey('test@wallabag.io', $msg->getTo());
|
||||||
$this->assertEquals(array('nobody@test.io' => 'wallabag test'), $msg->getFrom());
|
$this->assertEquals(array('nobody@test.io' => 'wallabag test'), $msg->getFrom());
|
||||||
$this->assertEquals('auth_code subject', $msg->getSubject());
|
$this->assertEquals('subject', $msg->getSubject());
|
||||||
$this->assertContains('Hi Bob, here is the code: 666666 and the support: http://0.0.0.0', $msg->toString());
|
$this->assertContains('text body', $msg->toString());
|
||||||
|
$this->assertContains('html body', $msg->toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue