src/EventListener/LoginListener.php line 30

Open in your IDE?
  1. <?php
  2. /*
  3.  *  Friendu_Frontend // LoginListener.php
  4.  *  
  5.  *  (c) 2018 Carsten Zeidler
  6.  */
  7. namespace App\EventListener;
  8. /**
  9.  * Description of LoginListener
  10.  *
  11.  * @author Carsten
  12.  */
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
  16. use App\Entity\User;
  17. class LoginListener implements EventSubscriberInterface {
  18.     private $em;
  19.     public function __construct(EntityManagerInterface $em) {
  20.         $this->em $em;
  21.     }
  22.     public function onLoginSuccess(InteractiveLoginEvent $event) {
  23.         // Get the User entity.
  24.         $user $event->getAuthenticationToken()->getUser();
  25.         // Update your field here.
  26.         $user->setLastLogin(new \DateTime());
  27.         // Persist the data to database.
  28.         $this->em->persist($user);
  29.         $this->em->flush();
  30.     }
  31.     public function onLoginError(AuthenticationEvent $event) {
  32.         // Login error
  33.         echo 'Error';
  34.     }
  35.     public static function getSubscribedEvents() {
  36.         return [
  37.             //SecurityEvents::INTERACTIVE_LOGIN => 'onSecurityInteractiveLogin',
  38.             LoginSuccessEvent::class => 'onLoginSuccess'
  39.         ];
  40.     }
  41. }