src/EventSubscriber/JWTSubscriber.php line 29

Open in your IDE?
  1. <?php
  2. /*
  3.  * Created on Fri Dec 02 2022
  4.  *
  5.  * DAVID-OLIVIER DESCOMBES
  6.  *
  7.  * @licence
  8.  * You may not sell, sub-license, rent or lease any portion of the Software or Documentation to anyone.
  9.  *
  10.  * Copyright (c) 2022 dodarchitecte.com (https://dodarchitecte.com)
  11.  *
  12.  * Developed by developpeur-informatique.ma (https://www.developpeur-informatique.ma)
  13.  */
  14. namespace App\EventSubscriber;
  15. use Error;
  16. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
  17. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  18. use Symfony\Component\Security\Core\Security;
  19. class JWTSubscriber implements EventSubscriberInterface
  20. {
  21.     public function __construct(private Security $security)
  22.     {
  23.     }
  24.     public function onLexikJwtAuthenticationOnJwtCreated(JWTCreatedEvent $event)
  25.     {
  26.         $data $event->getData();
  27.         $user =   $event->getUser();
  28.         $isGestionnaire $this->security->getToken()->getUser()->getRoles() > 1;
  29.         // dd($user->isActive());
  30.         if ($isGestionnaire &&  !$user->isActive()) {
  31.             throw new Error("Impossible de se connecter.");
  32.         }
  33.         if ($user->isDiscarded()) {
  34.             throw new Error("Impossible de se connecter.");
  35.         } else {
  36.             //  $user = $event->getUser();
  37.             // dd($event->getUser()->isCollaborator(),$event->getUser()->getClients());
  38.             // $data['email'] = $user->getEmail();
  39.             $data['username'] = $event->getUser()->getUserIdentifier();
  40.             $data['id'] = $event->getUser()->getId();
  41.             // if (!$isGestionnaire)
  42.             $data['is_collaborator'] = $event->getUser()->isCollaborator();
  43.             //$data['can_signe'] =  $event->getUser()->isCollaborator() ? $event->getUser()->isCanSigne() : true;
  44.             $profile $event->getUser()->getProfile();
  45.             if ($profile) {
  46.                 $data['fullName'] = $profile->getFirstName() . " " $profile->getLastName();
  47.                 $data['firstname'] = $profile->getFirstName();
  48.             }
  49.             $event->setData($data);
  50.         }
  51.     }
  52.     public static function getSubscribedEvents(): array
  53.     {
  54.         return [
  55.             'lexik_jwt_authentication.on_jwt_created' => 'onLexikJwtAuthenticationOnJwtCreated',
  56.         ];
  57.     }
  58. }