src/EventSubscribers/Main/ResettingSubscriber.php line 45

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscribers\Main;
  3. use App\Events\Main\Resetting\ResetEvent;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  7. /**
  8.  * Class ResettingSubscriber
  9.  * @package App\EventSubscribers\Main
  10.  */
  11. class ResettingSubscriber implements EventSubscriberInterface
  12. {
  13.     const
  14.         RESETTING_RESET_REQUEST 'on.resetting.reset.request',
  15.         RESETTING_RESET_INITIALIZE 'on.resetting.reset.initialize'
  16.     ;
  17.     /**
  18.      * @var UrlGeneratorInterface
  19.      */
  20.     private $router;
  21.     private $tokenTtl 10000;
  22.     public function __construct(UrlGeneratorInterface $router)
  23.     {
  24.         $this->router $router;
  25.     }
  26.     /**
  27.      * @return array
  28.      */
  29.     public static function getSubscribedEvents()
  30.     {
  31.         return array(
  32.             self::RESETTING_RESET_REQUEST => "onResettingResetRequest",
  33.             self::RESETTING_RESET_INITIALIZE => "onResettingResetInitialize",
  34.         );
  35.     }
  36.     /**
  37.      * @param ResetEvent $event
  38.      */
  39.     public function onResettingResetInitialize(ResetEvent $event)
  40.     {
  41.         if (!$event->getUser()->isPasswordRequestNonExpired($this->tokenTtl)) {
  42.             $event->setResponse(new RedirectResponse($this->router->generate('user_resetting_request')));
  43.         }
  44.     }
  45.     /**
  46.      * @param ResetEvent $event
  47.      */
  48.     public function onResettingResetRequest(ResetEvent $event)
  49.     {
  50.         if (!$event->getUser()->isAccountNonLocked()) {
  51.             $event->setResponse(new RedirectResponse($this->router->generate('user_resetting_request')));
  52.         }
  53.     }
  54. }