<?php
namespace App\EventListener;
use App\Entity\User;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\Security\Core\Security;
class ProcessoKernelListener
{
public function __construct(private readonly EntityManagerInterface $em, private readonly Security $security) {}
public function onKernelRequest(RequestEvent $event): void
{
/** @var User $userLogged */
$userLogged = $this->security->getUser();
if (!$this->security->isGranted('ROLE_ADMIN') && $userLogged) {
$filter = $this->em
->getFilters()
->enable('processo_user_filter');
$isNotRegisterResponsible = !$this->security->isGranted('ROLE_ESCREVENTE_REGISTRO');
$field = $isNotRegisterResponsible ? "responsavel_id" : "responsavel_registro_id";
$filter->setParameter('field', $field);
$filter->setParameter('userId', $userLogged->getId());
}
}
}