src/EventListener/BeforeRequestListener.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Doctrine\ORM\EntityManager;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  6. use Symfony\Component\Security\Core\Security;
  7. use App\Entity\User;
  8. class BeforeRequestListener
  9. {
  10.     private $em;
  11.     private $token;
  12.     private $security;
  13.     public function __construct(EntityManager $em,TokenStorageInterface $token,Security $security )
  14.     {
  15.         $this->em $em;
  16.         $this->token $token;
  17.         $this->security $security;
  18.     }
  19.     public function onKernelRequest(RequestEvent $event)
  20.     {
  21.         if($this->token->getToken() === null) {
  22.             return;
  23.         }
  24.         /** @var User $user */
  25.         $user $this->token->getToken()->getUser();
  26.         if(!$user->hasRole('ROLE_ADMIN')) {
  27.             $processus_ids_array= [];
  28.             foreach($user->getProcessuses() as $processus) {
  29.                 $processus_ids_array[]=$processus->getId();
  30.             }
  31.             $processus_ids implode(', '$processus_ids_array);
  32.             $filter $this->em
  33.                 ->getFilters()
  34.                 ->enable('processus_filter');
  35.             $filter->setParameter('ids'$processus_ids);
  36.         }
  37.         
  38.     }
  39. }