<?php
namespace App\Listener;
use Doctrine\ORM\EntityManagerInterface;
use Psr\Log\LoggerInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\Security\Core\Security;
class BeforeRequestListener
{
/**
* @var EntityManagerInterface
*/
private $em;
/**
* @var Security
*/
private $security;
/**
* @var LoggerInterface
*/
private $logger;
/**
* BeforeRequestListener constructor.
* @param EntityManagerInterface $em
* @param Security $security
* @param LoggerInterface $logger
*/
public function __construct(EntityManagerInterface $em, Security $security, LoggerInterface $logger)
{
$this->em = $em;
$this->security = $security;
$this->logger = $logger;
}
/**
* @param RequestEvent $event
*/
public function onKernelRequest(RequestEvent $event)
{
$filter = $this->em
->getFilters()
->enable('active_filter');
$filter->setSecurity($this->security);
$exclusionsFilter = $this->em->getFilters()->enable('exclusions_filter');
$exclusionsFilter->setEntityManager($this->em)->setLogger($this->logger)->setUser($this->security->getUser());
}
}