<?php
namespace SymfonyDev\AppBundle\Security;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Routing\Router;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Routing\RouterInterface;
use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
class AuthenticationSuccessHandler {
private $doctrine;
private $logger;
public function __construct($doctrine, Router $router)
{
$this->doctrine = $doctrine;
$this->router = $router;
}
public function onSecurityInteractiveLogin(InteractiveLoginEvent $event)
{
$this->onAuthenticationSuccess($event->getRequest(), $event->getAuthenticationToken());
}
public function onAuthenticationSuccess(Request $request, TokenInterface $token)
{
$em = $this->doctrine->getManager();
$user = $token->getUser();
$user->setLastLogin(new \DateTime());
$em->flush($user);
$response = new RedirectResponse($this->router->generate('app_security_redirect'));
return $response;
}
}