1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace SumoCoders\FrameworkMultiUserBundle\Event; |
4
|
|
|
|
5
|
|
|
use SumoCoders\FrameworkCoreBundle\Mail\MessageFactory; |
6
|
|
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface; |
7
|
|
|
use Swift_Mailer; |
8
|
|
|
use Symfony\Component\Templating\EngineInterface; |
9
|
|
|
use Symfony\Component\Translation\TranslatorInterface; |
10
|
|
|
|
11
|
|
|
class OnPasswordResetTokenCreated implements EventSubscriberInterface |
12
|
|
|
{ |
13
|
|
|
/** @var MessageFactory */ |
14
|
|
|
private $messageFactory; |
15
|
|
|
|
16
|
|
|
/** @var Swift_Mailer */ |
17
|
|
|
private $mailer; |
18
|
|
|
|
19
|
|
|
/** @var TranslatorInterface */ |
20
|
|
|
private $translator; |
21
|
|
|
|
22
|
|
|
/** @var string */ |
23
|
|
|
private $emailFrom; |
24
|
|
|
|
25
|
|
|
/** @var EngineInterface */ |
26
|
|
|
private $engine; |
27
|
|
|
|
28
|
|
|
public function __construct( |
29
|
|
|
MessageFactory $messageFactory, |
30
|
|
|
Swift_Mailer $mailer, |
31
|
|
|
TranslatorInterface $translator, |
32
|
|
|
EngineInterface $engine, |
33
|
|
|
$emailFrom |
34
|
|
|
) { |
35
|
|
|
$this->messageFactory = $messageFactory; |
36
|
|
|
$this->mailer = $mailer; |
37
|
|
|
$this->translator = $translator; |
38
|
|
|
$this->engine = $engine; |
39
|
|
|
$this->emailFrom = $emailFrom; |
40
|
|
|
} |
41
|
|
|
|
42
|
|
|
public function onPasswordResetTokenCreated(PasswordResetTokenCreated $event): int |
43
|
|
|
{ |
44
|
|
|
$message = $this->messageFactory->createHtmlMessage( |
45
|
|
|
'Password reset requested', |
46
|
|
|
$this->engine->render( |
47
|
|
|
'SumoCodersFrameworkMultiUserBundle:Email:passwordReset.html.twig', |
48
|
|
|
['user' => $event->getUser()] |
49
|
|
|
) |
50
|
|
|
); |
51
|
|
|
|
52
|
|
|
$message |
53
|
|
|
->setFrom($this->emailFrom) |
54
|
|
|
->setTo($event->getUser()->getEmail()) |
55
|
|
|
; |
56
|
|
|
|
57
|
|
|
return $this->mailer->send($message); |
58
|
|
|
} |
59
|
|
|
|
60
|
|
|
public static function getSubscribedEvents(): array |
61
|
|
|
{ |
62
|
|
|
return [ |
63
|
|
|
PasswordResetTokenCreated::NAME => [ |
64
|
|
|
['onPasswordResetTokenCreated', 0], |
65
|
|
|
], |
66
|
|
|
]; |
67
|
|
|
} |
68
|
|
|
} |
69
|
|
|
|