src/EventListener/RequestListener.php line 33

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Enum\PermissionList;
  4. use App\Service\CheckPermissionService;
  5. use Symfony\Component\HttpKernel\Event\RequestEvent;
  6. use Symfony\Component\Security\Core\Security;
  7. use Twig\Environment;
  8. class RequestListener
  9. {
  10.     /**
  11.      * @var Security
  12.      */
  13.     private $security;
  14.     /**
  15.      * @var Environment
  16.      */
  17.     private $twig;
  18.     /**
  19.      * @var array
  20.      */
  21.     private $spacesAccessList = [];
  22.     public function __construct(Security $securityEnvironment $twig)
  23.     {
  24.         $this->security $security;
  25.         $this->twig $twig;
  26.     }
  27.     public function onKernelRequest(RequestEvent $event): void
  28.     {
  29.         if (!$event->isMasterRequest() || !$this->security->getUser()) {
  30.             return;
  31.         }
  32.         if (in_array('ROLE_SUPER_ADMIN'$this->security->getUser()->getRoles())){
  33.             $this->twig->addGlobal('access_list'PermissionList::getPermissionList());
  34.             return;
  35.         }
  36.         $checkPermissionService = new CheckPermissionService($this->security->getUser());
  37.         $checkPermissionService->check($event->getRequest()->getLocale());
  38.         $GLOBALS['spacesAccessList'] = $checkPermissionService->spacesAccessList;
  39.         $this->twig->addGlobal('access_list'$checkPermissionService->mainAccessRoles);
  40.     }
  41. }