src/EventSubscriber/AutorizationSubscriber.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpFoundation\RedirectResponse;
  5. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  6. use Symfony\Component\HttpKernel\Event\RequestEvent;
  7. use Symfony\Component\HttpKernel\KernelEvents;
  8. class AutorizationSubscriber implements EventSubscriberInterface
  9. {
  10.     private $session;
  11.     public function __construct(SessionInterface $session)
  12.     {
  13.         $this->session $session;
  14.     }
  15.     public function onKernelRequest(RequestEvent $event)
  16.     {
  17.         $request $event->getRequest();
  18.         $routeName  $request->attributes->get('_route');
  19.         if (!$this->session->has('admin') && $routeName == 'admin') {
  20.             $this->session->set('redirectUri'$request->getUri());
  21.             $event->setResponse(new RedirectResponse('login'));
  22.         }
  23.     }
  24.     public static function getSubscribedEvents()
  25.     {
  26.         return [
  27.             // must be registered before (i.e. with a higher priority than) the default Locale listener
  28.             KernelEvents::REQUEST => [['onKernelRequest'14]],
  29.         ];
  30.     }
  31. }