<?php
namespace App\EventSubscribers\Login;
use App\Entity\User;
use App\Services\UserService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Security\Http\SecurityEvents;
class UpdateActiveTimeOnLoginSubscriber implements EventSubscriberInterface
{
/** @var UserService */
private UserService $userService;
public function __construct(UserService $userService)
{
$this->userService = $userService;
}
public function onInteractiveLogin(InteractiveLoginEvent $event)
{
$user = $event->getAuthenticationToken()->getUser();
if ($user instanceof User) {
$this->userService->updateLastActionTime($user);
}
}
public static function getSubscribedEvents()
{
return [
SecurityEvents::INTERACTIVE_LOGIN => ["onInteractiveLogin"],
];
}
}