src/EventListener/DeletedUserListener.php line 47

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\EventListener;
  4. use App\Entity\User;
  5. use Symfony\Component\HttpFoundation\RedirectResponse;
  6. use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
  7. use Symfony\Component\HttpKernel\Event\RequestEvent;
  8. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  9. use Symfony\Component\Security\Core\Authentication\Token\AnonymousToken;
  10. use Symfony\Component\Security\Core\Security;
  11. class DeletedUserListener
  12. {
  13.     /**
  14.      * @var Security
  15.      */
  16.     private $security;
  17.     /**
  18.      * @var UrlGeneratorInterface
  19.      */
  20.     private $router;
  21.     /**
  22.      * @var FlashBagInterface
  23.      */
  24.     private $flashBag;
  25.     /**
  26.      * @param Security              $security
  27.      * @param UrlGeneratorInterface $router
  28.      * @param FlashBagInterface     $flashBag
  29.      */
  30.     public function __construct(Security $securityUrlGeneratorInterface $routerFlashBagInterface $flashBag)
  31.     {
  32.         $this->router $router;
  33.         $this->security $security;
  34.         $this->flashBag $flashBag;
  35.     }
  36.     /**
  37.      * @param RequestEvent $event
  38.      */
  39.     public function onKernelRequest(RequestEvent $event): void
  40.     {
  41. //        $request = $event->getRequest();
  42. //
  43. //        if (\in_array($request->get('_route'), ['profile_account_blocked'])) {
  44. //            return;
  45. //        }
  46.         if (!$event->isMasterRequest()
  47.             || (null === $this->security->getToken())
  48.             || ($this->security->getToken() instanceof AnonymousToken)
  49.             || !($this->security->getUser() instanceof User)) {
  50.             // don't do anything if it's not the master request
  51.             return;
  52.         }
  53.         /** @var User $user */
  54.         $user $this->security->getUser();
  55.         if (!$user->isDeleted()) {
  56.             // don't do anything if users organization is active
  57.             return;
  58.         }
  59.         $this->flashBag->add(
  60.             'info',
  61.             'Twoje konto zostało usunięte, skontaktuj się z administratorem systemu E-CNC'
  62.         );
  63.         $response = new RedirectResponse($this->router->generate('user_logout'));
  64.         $event->setResponse($response);
  65.     }
  66. }