src/EventSubscriber/LoginSuccessSubscriber.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. //use App\Entity\ActivityLog;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  7. use Symfony\Component\Security\Http\Event\InteractiveLoginEvent;
  8. use Symfony\Component\Security\Http\SecurityEvents;
  9. use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
  10. /**
  11.  * Stores the locale of the user in the session after the
  12.  * login. This can be used by the LocaleSubscriber afterwards.
  13.  */
  14. class LoginSuccessSubscriber implements EventSubscriberInterface
  15. {
  16.   private $session;
  17.   private $em;
  18.   public function __construct(SessionInterface $sessionEntityManagerInterface $em)
  19.   {
  20.     $this->session $session;
  21.     $this->em $em;
  22.   }
  23.   public static function getSubscribedEvents()
  24.   {
  25.     return [
  26.       /*SecurityEvents::INTERACTIVE_LOGIN => 'onInteractiveLogin',*/
  27.       LoginSuccessEvent::class => 'onLoginSuccess'
  28.     ];
  29.   }
  30.   public function onLoginSuccess(LoginSuccessEvent $event)
  31.   {
  32.       $user $event->getUser();
  33.       $user->setLastConnected(new \DateTime());
  34.       $this->em->flush();
  35.   }
  36.   /*public function onInteractiveLogin(InteractiveLoginEvent $event)
  37.   {
  38.     $user = $event->getAuthenticationToken()->getUser();
  39.     $this->session->set('_current_user', $user->getId());
  40.     if (null !== $user->getLocale()) {
  41.       $this->session->set('_locale', $user->getLocale());
  42.     }else{
  43.       $this->session->set('_locale', 'en');
  44.     }
  45.       $user->setLastPublicIpAddress($_SERVER['REMOTE_ADDR']);
  46.       if (isset($_COOKIE['privateIp'])) {
  47.           $user->setLastPrivateIpAddress($_COOKIE['privateIp']);
  48.       }
  49.       $this->em->persist($user);
  50.       $this->em->flush();
  51.   }*/
  52. }