<?php
namespace App\EventListener;
use App\Service\SessionLogManagement;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Security\Http\Util\TargetPathTrait;
class SessionLogListener
{
private $security;
private $sessionLogManagement;
public function __construct(
Security $security,
SessionLogManagement $sessionLogManagement
) {
$this->security = $security;
$this->sessionLogManagement = $sessionLogManagement;
}
/**
* @param RequestEvent $event
*/
public function onKernelRequest(RequestEvent $event)
{
if (false === $event->isMainRequest()) {
return;
}
// manage users sessions
$token = $this->security->getToken();
if (null === $token) {
return;
}
$user = $token->getUser();
if ($user instanceof UserInterface) {
$this->sessionLogManagement->sessionLog($user);
}
}
}