src/EventSubscriber/LoginListener.php line 27

  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Controller\ServiziController;
  4. use App\Entity\User;
  5. use Doctrine\Persistence\ConnectionRegistry;
  6. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  7. use Symfony\Component\Security\Core\AuthenticationEvents;
  8. use Symfony\Component\Security\Core\Event\AuthenticationSuccessEvent;
  9. class LoginListener implements \Symfony\Component\EventDispatcher\EventSubscriberInterface
  10. {
  11.     private $servizi;
  12.     public function __construct(ServiziController $servizi)
  13.     {
  14.         $this->servizi $servizi;
  15.     }
  16.     /**
  17.      * @param AuthenticationSuccessEvent $event
  18.      */
  19.     public function onLoginSuccess(AuthenticationSuccessEvent $event){
  20.         if($event->getAuthenticationToken()->getUser()) {
  21.             /** @var User $user */
  22.             $user $event->getAuthenticationToken()->getUser();
  23.             if ($user instanceof User) {
  24.                 $user->setLastLogin(new \DateTime());
  25.                 $em $this->servizi->doctrine->getManager();
  26.                 $em->persist($user);
  27.                 $em->flush();
  28.                 if($this->servizi->checkRole('ROLE_ADMIN')){
  29.                     $this->servizi->ScriviRegistroAttivitaUtente($user"Login""Accesso effettuato");
  30.                 }
  31.             }
  32.         }
  33.     }
  34.     /**
  35.      * @inheritDoc
  36.      */
  37.     public static function getSubscribedEvents()
  38.     {
  39.         return [
  40.             AuthenticationEvents::AUTHENTICATION_SUCCESS => [
  41.                 ['onLoginSuccess'0],
  42.             ],
  43.         ];
  44.     }
  45. }