Completed
Pull Request — master (#12)
by
unknown
05:50 queued 03:06
created

OnPasswordResetTokenCreated::getSubscribedEvents()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 1
eloc 4
nc 1
nop 0
1
<?php
2
3
namespace SumoCoders\FrameworkMultiUserBundle\Event;
4
5
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
6
use Swift_Mailer;
7
use Swift_Message;
8
use Symfony\Component\Templating\EngineInterface;
9
use Symfony\Component\Translation\TranslatorInterface;
10
11
class OnPasswordResetTokenCreated implements EventSubscriberInterface
12
{
13
    public static function getSubscribedEvents()
14
    {
15
        return [
16
            PasswordResetTokenCreated::NAME => [
17
                ['onPasswordResetTokenCreated', 0],
18
            ],
19
        ];
20
    }
21
    /**
22
     * @var Swift_Mailer
23
     */
24
    private $mailer;
25
26
    /**
27
     * @var TranslatorInterface
28
     */
29
    private $translator;
30
31
    /**
32
     * @var string
33
     */
34
    private $emailFrom;
35
36
    /**
37
     * @var EngineInterface
38
     */
39
    private $engine;
40
41
    /**
42
     * OnPasswordResetTokenCreated constructor.
43
     *
44
     * @param Swift_Mailer $mailer
45
     * @param TranslatorInterface $translator
46
     * @param EngineInterface $engine
47
     * @param $emailFrom
48
     */
49
    public function __construct(
50
        Swift_Mailer $mailer,
51
        TranslatorInterface $translator,
52
        EngineInterface $engine,
53
        $emailFrom
54
    ) {
55
        $this->mailer = $mailer;
56
        $this->translator = $translator;
57
        $this->emailFrom = $emailFrom;
58
        $this->engine = $engine;
59
    }
60
61
    /**
62
     * @param PasswordResetTokenCreated $event
63
     *
64
     * @return int
65
     *
66
     * @throws \Twig_Error
67
     */
68
    public function onPasswordResetTokenCreated(PasswordResetTokenCreated $event)
69
    {
70
        $message = Swift_Message::newInstance()
71
            ->setSubject('Password reset requested')
72
            ->setFrom($this->emailFrom)
73
            ->setTo($event->getUser()->getEmail())
74
            ->setBody(
75
                $this->engine->render(
76
                    'SumoCodersFrameworkMultiUserBundle:Email:passwordReset.html.twig',
77
                    ['user' => $event->getUser()]
78
                ),
79
                'text/html'
80
            );
81
82
        return $this->mailer->send($message);
83
    }
84
}
85