src/Bundles/UserBundle/EventListener/UserPassword/PasswordRequestEventListener.php line 24

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Bundles\UserBundle\EventListener\UserPassword;
  4. use App\Bundles\UserBundle\Entity\UserInterface;
  5. use App\Bundles\UserBundle\EventListener\UserModifierListener;
  6. use Symfony\Component\EventDispatcher\Attribute\AsEventListener;
  7. use Symfony\Component\HttpFoundation\RedirectResponse;
  8. use Symfony\Component\HttpKernel\Event\RequestEvent;
  9. use Symfony\Component\Routing\RouterInterface;
  10. use Symfony\Component\Security\Core\Security;
  11. #[AsEventListener(eventRequestEvent::class, method'onKernelRequest'priority1)]
  12. class PasswordRequestEventListener
  13. {
  14.     public function __construct(
  15.         private readonly Security $security,
  16.         private readonly RouterInterface $router,
  17.     ) {
  18.     }
  19.     public function onKernelRequest(RequestEvent $event): void
  20.     {
  21.         $request $event->getRequest();
  22.         if ($request->attributes->get('_route') !== UserModifierListener::CHANGE_PASSWORD_PATH_NAME) {
  23.             return;
  24.         }
  25.         /** @var UserInterface $user */
  26.         $user $this->security->getUser();
  27.         if (!$user->hasExpiredPassword()) {
  28.             $url $this->router->generate('users.index');
  29.             $event->setResponse(new RedirectResponse($url));
  30.         }
  31.     }
  32. }