src/AdminBundle/EventListener/AuthenticationSuccessListener.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\AdminBundle\EventListener;
  3. use App\AdminBundle\Service\UserManager;
  4. use App\AdminBundle\Entity\User;
  5. use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
  6. class AuthenticationSuccessListener
  7. {
  8.     private $userManager;
  9.     public function __construct(UserManager $userManager)
  10.     {
  11.         $this->userManager $userManager;
  12.     }
  13.     /**
  14.      * @param AuthenticationSuccessEvent $event
  15.      */
  16.     public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event)
  17.     {
  18.         $data $event->getData();
  19.         $user $event->getUser();
  20.         if (!$user instanceof User) {
  21.             return;
  22.         }
  23.         // Reset failed login attemps
  24.         if ($user->getFailedLoginAttemps() > 0) {
  25.             $user->setFailedLoginAttemps(0);
  26.             $this->userManager->updateUser($user);
  27.         }
  28.         // Get the user init info from the user manager and set it in the event
  29.         $data['data'] = $this->userManager->getUserAndHouseholdInitInfo();
  30.         $event->setData($data);
  31.         // Remove not used anymore PHP session data from server
  32.         session_destroy();
  33.     }
  34. }