src/EventSubscriber/RequestSubscriber.php line 51

Open in your IDE?
  1. <?php
  2. #Redirecting to the Last Accessed Page with TargetPathTrait
  3. namespace App\EventSubscriber;
  4. use App\Security\Users;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  7. use Symfony\Component\HttpKernel\Event\RequestEvent;
  8. use Symfony\Component\HttpKernel\KernelEvents;
  9. use Symfony\Component\Security\Core\Security;
  10. use Symfony\Component\Security\Http\Util\TargetPathTrait;
  11. use Symfony\Component\HttpFoundation\RedirectResponse;
  12. use Symfony\Component\Routing\RouterInterface;
  13. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  14. class RequestSubscriber implements EventSubscriberInterface
  15. {
  16.     use TargetPathTrait;
  17.     private $session;
  18.     private $router;
  19.     public function __construct(SessionInterface $sRouterInterface $rTokenStorageInterface $t)
  20.     {
  21.         $this->router $r;
  22.         $this->session $s;
  23.         $this->tokenStorage $t;
  24.     }
  25.     public function onKernelRequest(RequestEvent $event): void
  26.     {
  27.         $request $event->getRequest();
  28.         if (
  29.             !$event->isMainRequest()
  30.             || $request->isXmlHttpRequest()
  31.             || 'app_login' === $request->attributes->get('_route')
  32.             #|| 'home_page' === $request->attributes->get('_route')
  33.             || ($this->isUserLogged() instanceof Users)
  34.         ) {
  35.             #non รจ richiesta l'auth
  36.             return;
  37.         }
  38.         else{
  39.             if($event->isMainRequest() && !$this->isUserLogged())
  40.             {
  41.                 $this->session->set("login-referal"$request->attributes->get('_route'));
  42.             }
  43.         }
  44.     }
  45.     private function isUserLogged()
  46.     {
  47.         if($this->tokenStorage->getToken())
  48.         {
  49.             $user $this->tokenStorage->getToken()->getUser();
  50.             return $user;
  51.         }
  52.     }
  53.     public static function getSubscribedEvents(): array
  54.     {
  55.         return [
  56.             KernelEvents::REQUEST => ['onKernelRequest']
  57.         ];
  58.     }
  59. }