src/EventSubscriber/LoginSuccessSubscriber.php line 17

  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\Attendee;
  4. use App\Entity\User;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
  8. class LoginSuccessSubscriber implements EventSubscriberInterface
  9. {
  10.     public function __construct(private EntityManagerInterface $manager)
  11.     {
  12.     }
  13.     public function onLoginSuccessEvent(LoginSuccessEvent $event): void
  14.     {
  15.         $user $event->getUser();
  16.         if ($user instanceof Attendee) {
  17.             $user->setLastLogin(new \DateTimeImmutable());
  18.             $this->manager->flush();
  19.         }
  20.     }
  21.     public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             LoginSuccessEvent::class => 'onLoginSuccessEvent',
  25.         ];
  26.     }
  27. }