src/EventListener/JWTCreatedListener.php line 34

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use App\Repository\DepositRepository;
  4. use Lexik\Bundle\JWTAuthenticationBundle\Event\JWTCreatedEvent;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\JsonResponse;
  7. use Symfony\Component\HttpFoundation\RequestStack;
  8. class JWTCreatedListener extends AbstractController
  9. {
  10.     /**
  11.      * @var RequestStack
  12.      */
  13.     private $requestStack;
  14.     /**
  15.      * @param RequestStack $requestStack
  16.      */
  17.     public function __construct(RequestStack $requestStack)
  18.     {
  19.         $this->requestStack $requestStack;
  20.     }
  21.     /**
  22.      * @param JWTCreatedEvent $event
  23.      *
  24.      * @return void
  25.      */
  26.     public function onJWTCreated(JWTCreatedEvent $event)
  27.     {
  28.         $request json_decode($this->requestStack->getCurrentRequest()->getContent(), true);
  29.         $payload $event->getData();
  30.         if ($request) {
  31.             // $expiration = new \DateTime();
  32.             if ($request['username'] != $event->getUser()->getLogin()) {
  33.                 $payload['username'] = $request['username'];
  34.                 $payload['email'] = $request['email'];
  35.                 $payload['valid'] = 'false';
  36.                 $event->setData($payload);
  37.             } else {
  38.                 $payload['username'] = $request['username'];
  39.                 $payload['valid'] = 'true';
  40.                 $payload['email'] = $request['email'];
  41.                 $payload['active'] = $event->getUser()->getActive();
  42.                 $payload['name'] = $event->getUser()->getFirstName();
  43.                 $payload['Country'] = $event->getUser()->getCountry();
  44.                 $payload['City'] = $event->getUser()->getCity();
  45.                 $payload['address'] = $event->getUser()->getAddress();
  46.                 $payload['company'] = $event->getUser()->getBusinessName();
  47.                 $payload['phone'] = $event->getUser()->getContactPhone();
  48.                 if (in_array("ROLE_AGENCY",$event->getUser()->getRoles())){
  49.                     $payload['deposit'] = $event->getUser()->getDeposit();
  50.                     $payload['markup'] = $event->getUser()->getMarkup();
  51.                     $payload['markupagence'] = $event->getUser()->getMarkupAgence();
  52.                     $payload['currency'] = $event->getUser()->getCurrency()->getCode();
  53.                 }
  54.                 else if (in_array("ROLE_AGENT",$event->getUser()->getRoles())){
  55.                     $payload['deposit'] = $event->getUser()->getIdAgence()->getDeposit();
  56.                     $payload['markup'] = $event->getUser()->getIdAgence()->getMarkup();
  57.                     $payload['markupagence'] = $event->getUser()->getMarkupAgence();
  58.                     $payload['currency'] = $event->getUser()->getCurrency()->getCode();
  59.                 }else{
  60.                     $payload['markup'] = $event->getUser()->getMarkup();
  61.                     $payload['markupagence'] = 0;
  62.                     $payload['deposit']="";
  63.                     $payload['currency'] = "";
  64.                 }
  65.                 // $payload['exp'] = $expiration->getTimestamp();
  66.                 $event->setData($payload);
  67.             }
  68.         }else{
  69.             $expiration = new \DateTime('+1 hour');
  70.             $payload['exp'] = $expiration->getTimestamp();
  71.             $event->setData($payload);
  72.         }
  73.     }
  74. }