src/EventSubscriber/LoginEventSubscriber.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\Benutzer;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
  7. readonly class LoginEventSubscriber implements EventSubscriberInterface
  8. {
  9. public function __construct(private EntityManagerInterface $em)
  10. {
  11. }
  12. #[\Override]
  13. public static function getSubscribedEvents(): array
  14. {
  15. return [
  16. LoginSuccessEvent::class => 'onLoginSuccess',
  17. ];
  18. }
  19. public function onLoginSuccess(LoginSuccessEvent $event): void
  20. {
  21. /**
  22. * @var Benutzer $user
  23. */
  24. $user = $event->getUser();
  25. $benutzer = $this->em->getRepository(Benutzer::class)->find($user->getId());
  26. if ($benutzer) {
  27. $benutzer->setLetzterLogin(new \DateTime('now'));
  28. $this->em->flush();
  29. }
  30. }
  31. }