<?php
namespace App\EventListener;
use App\Repository\UserActivityRepository;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\Security\Core\Security;
use Kematjaya\UserBundle\Entity\KmjUser;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
/**
* Description of UserActivityListener
*
* @author apple
*/
class UserActivityListener
{
private Security $security;
private UserActivityRepository $userActivityRepository;
private ParameterBagInterface $parameterBag;
public function __construct(Security $security, ParameterBagInterface $parameterBag, UserActivityRepository $userActivityRepository)
{
$this->parameterBag = $parameterBag;
$this->security = $security;
$this->userActivityRepository = $userActivityRepository;
}
public function onKernelRequest(RequestEvent $event):void
{
if (false === $event->isMainRequest()) {
return;
}
if (in_array($event->getRequest()->attributes->get("_route"), $this->parameterBag->get("log_exclude_path"))) {
return;
}
if (!$this->security->getUser() instanceof KmjUser) {
return;
}
$this->userActivityRepository->createFromRequest($event->getRequest(), $this->security->getUser());
}
}