src/EventListener/AuthenticationSuccessListener.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Entity\Admin;
  4. use App\Entity\ControleActivity;
  5. use App\Entity\User;
  6. use App\Repository\ControleActivityRepository;
  7. use DateTimeImmutable;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Lexik\Bundle\JWTAuthenticationBundle\Event\AuthenticationSuccessEvent;
  10. use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
  11. use Symfony\Component\Security\Core\Security;
  12. use Symfony\Component\Security\Core\User\UserInterface;
  13. use Symfony\Component\HttpFoundation\RequestStack;
  14. class AuthenticationSuccessListener
  15. {
  16.     private $customer;
  17.     public function __construct(
  18.         Security $security,
  19.         private RequestStack $requestStack,
  20.         private EntityManagerInterface $entityManagerInterface
  21.     ) {
  22.         $this->customer =  $security->getUser();
  23.     }
  24.     public function onAuthenticationSuccessResponse(AuthenticationSuccessEvent $event)
  25.     {
  26.         $data $event->getData();
  27.         $user $this->customer;
  28.         if (!$user instanceof UserInterface) {
  29.             return;
  30.         }
  31.         if (true) {
  32.             $data['id'] = $user->getId();
  33.             $data['firstName'] = $user->getFirstName();
  34.             $data['lastName'] = $user->getLastName();
  35.             $data['phone'] = $user->getPhone();
  36.             $data['email'] = $user->getEmail();
  37.             $data['roles'] = $user->getRoles();
  38.             if (in_array('ROLE_ADMIN'$data['roles'])) {
  39.                 $data['roles'] = $user->getRole()->toArray()[0]->getLabel();
  40.             }
  41.             $event->setData($data);
  42.         } else {
  43.             $erroMessage "You are not authoticated";
  44.             throw new UnauthorizedHttpException($erroMessage$erroMessage);
  45.         }
  46.     }
  47. }