vendor/friendsofsymfony/user-bundle/EventListener/ResettingListener.php line 60
- <?php
- /*
- * This file is part of the FOSUserBundle package.
- *
- * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace FOS\UserBundle\EventListener;
- use FOS\UserBundle\Event\FormEvent;
- use FOS\UserBundle\Event\GetResponseUserEvent;
- use FOS\UserBundle\FOSUserEvents;
- use Symfony\Component\EventDispatcher\EventSubscriberInterface;
- use Symfony\Component\HttpFoundation\RedirectResponse;
- use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
- /**
- * @internal
- *
- * @final
- */
- class ResettingListener implements EventSubscriberInterface
- {
- /**
- * @var UrlGeneratorInterface
- */
- private $router;
- /**
- * @var int
- */
- private $tokenTtl;
- /**
- * ResettingListener constructor.
- *
- * @param int $tokenTtl
- */
- public function __construct(UrlGeneratorInterface $router, $tokenTtl)
- {
- $this->router = $router;
- $this->tokenTtl = $tokenTtl;
- }
- /**
- * {@inheritdoc}
- */
- public static function getSubscribedEvents(): array
- {
- return [
- FOSUserEvents::RESETTING_RESET_INITIALIZE => 'onResettingResetInitialize',
- FOSUserEvents::RESETTING_RESET_SUCCESS => 'onResettingResetSuccess',
- ];
- }
- public function onResettingResetInitialize(GetResponseUserEvent $event)
- {
- if (!$event->getUser()->isPasswordRequestNonExpired($this->tokenTtl)) {
- $event->setResponse(new RedirectResponse($this->router->generate('fos_user_resetting_request')));
- }
- }
- public function onResettingResetSuccess(FormEvent $event)
- {
- /** @var $user \FOS\UserBundle\Model\UserInterface */
- $user = $event->getForm()->getData();
- $user->setConfirmationToken(null);
- $user->setPasswordRequestedAt(null);
- $user->setEnabled(true);
- }
- }