<?php
namespace App\EventListener;
use FOS\UserBundle\Event\FilterUserResponseEvent;
use FOS\UserBundle\Event\FormEvent;
use FOS\UserBundle\FOSUserEvents;
use FOS\UserBundle\Mailer\Mailer;
use FOS\UserBundle\Mailer\TwigSwiftMailer;
use FOS\UserBundle\Model\UserManager;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\RouterInterface;
use Swift_Mailer;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Twig\Environment;
use App\Service\MailerService;
class RegistrationListener
{
/**
* @var EventDispatcherInterface
*/
private $dispatcher;
/**
* @var UserManager
*/
private $userManager;
private $mailerService;
/**
* @var RouterInterface
*/
private $router;
private $twig;
public function __construct(UserManager $userManager, MailerService $mailerService, RouterInterface $router)
{
$this->userManager = $userManager;
$this->router = $router;
$this->mailerService = $mailerService;
}
/**
* @param FilterUserResponseEvent $event
* @return null|\Symfony\Component\HttpFoundation\Response
*/
public function onRegistrationComplete(FilterUserResponseEvent $event)
{
$user = $event->getUser();
// $this->mailer->sendResettingEmailMessage($user);
$this->mailerService->sendResettingEmailMessage($user);
$user->setPasswordRequestedAt(new \DateTime());
$this->userManager->updateUser($user);
}
/**
* @param FormEvent $event
*/
public function redirect(FormEvent $event)
{
$response = new RedirectResponse($this->router->generate('app.home'));
$event->setResponse($response);
}
}