src/EventListener/UserLastActivityListener.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Entity\User\User;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  6. class UserLastActivityListener
  7. {
  8.     public function __construct(
  9.         protected TokenStorageInterface $tokenStorage,
  10.         protected EntityManagerInterface $entityManager,
  11.     ){}
  12.     public function onMainController()
  13.     {
  14.         if ($this->tokenStorage->getToken()) {
  15.             $user $this->tokenStorage->getToken()->getUser();
  16.             if ( ($user instanceof User) && !($user->isActiveNow()) ) {
  17.                 $user->setLastActivityAt(new \DateTime());
  18.                 $this->entityManager->flush($user);
  19.             }
  20.         }
  21.     }
  22. }