src/EventListener/SessionLogListener.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Service\SessionLogManagement;
  4. use Symfony\Component\HttpKernel\Event\RequestEvent;
  5. use Symfony\Component\Security\Core\Security;
  6. use Symfony\Component\Security\Core\User\UserInterface;
  7. use Symfony\Component\Security\Http\Util\TargetPathTrait;
  8. class SessionLogListener
  9. {
  10.     private $security;
  11.     private $sessionLogManagement;
  12.     public function __construct(
  13.         Security $security,
  14.         SessionLogManagement $sessionLogManagement
  15.     ) {
  16.         $this->security $security;
  17.         $this->sessionLogManagement $sessionLogManagement;
  18.     }
  19.     /**
  20.      * @param RequestEvent $event
  21.      */
  22.     public function onKernelRequest(RequestEvent  $event)
  23.     {
  24.         if (false === $event->isMainRequest()) {
  25.             return;
  26.         }
  27.         // manage users sessions
  28.         $token $this->security->getToken();
  29.         if (null === $token) {
  30.             return;
  31.         }
  32.         $user $token->getUser();
  33.         if ($user instanceof UserInterface) {
  34.             $this->sessionLogManagement->sessionLog($user);
  35.         }
  36.     }
  37. }