<?php
namespace App\EventSubscribers\Main;
use App\Events\Main\Resetting\ResetEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
/**
* Class ResettingSubscriber
* @package App\EventSubscribers\Main
*/
class ResettingSubscriber implements EventSubscriberInterface
{
const
RESETTING_RESET_REQUEST = 'on.resetting.reset.request',
RESETTING_RESET_INITIALIZE = 'on.resetting.reset.initialize'
;
/**
* @var UrlGeneratorInterface
*/
private $router;
private $tokenTtl = 10000;
public function __construct(UrlGeneratorInterface $router)
{
$this->router = $router;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return array(
self::RESETTING_RESET_REQUEST => "onResettingResetRequest",
self::RESETTING_RESET_INITIALIZE => "onResettingResetInitialize",
);
}
/**
* @param ResetEvent $event
*/
public function onResettingResetInitialize(ResetEvent $event)
{
if (!$event->getUser()->isPasswordRequestNonExpired($this->tokenTtl)) {
$event->setResponse(new RedirectResponse($this->router->generate('user_resetting_request')));
}
}
/**
* @param ResetEvent $event
*/
public function onResettingResetRequest(ResetEvent $event)
{
if (!$event->getUser()->isAccountNonLocked()) {
$event->setResponse(new RedirectResponse($this->router->generate('user_resetting_request')));
}
}
}