<?php
namespace App\EventSubscriber;
use App\Entity\Benutzer;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
readonly class LoginEventSubscriber implements EventSubscriberInterface
{
public function __construct(private EntityManagerInterface $em)
{
}
#[\Override]
public static function getSubscribedEvents(): array
{
return [
LoginSuccessEvent::class => 'onLoginSuccess',
];
}
public function onLoginSuccess(LoginSuccessEvent $event): void
{
/**
* @var Benutzer $user
*/
$user = $event->getUser();
$benutzer = $this->em->getRepository(Benutzer::class)->find($user->getId());
if ($benutzer) {
$benutzer->setLetzterLogin(new \DateTime('now'));
$this->em->flush();
}
}
}