src/EventListener/TokenFirebase.php line 27

Open in your IDE?
  1. <?php
  2. namespace  App\EventListener;
  3. use App\Entity\User;
  4. use DateTime;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. use Symfony\Component\HttpKernel\Event\RequestEvent;
  8. use Symfony\Component\Security\Core\Security;
  9. class TokenFirebase implements EventSubscriberInterface
  10. {
  11.     public function __construct(
  12.         private EntityManagerInterface $em,
  13.         private Security $security,
  14.     ) {
  15.     }
  16.     public static function getSubscribedEvents()
  17.     {
  18.         return [
  19.             'kernel.request' => ['onKernelRequest'0],
  20.         ];
  21.     }
  22.     public function onKernelRequest(RequestEvent $event)
  23.     {
  24.         if (!$event->isMainRequest()) {
  25.             // don't do anything if it's not the main request
  26.             return;
  27.         }
  28.         $request =  $event->getRequest();
  29.         $firebase_token $request->cookies->get('Token_Firebase');
  30.         if ($firebase_token) {
  31.             /** @var User $currentUser */
  32.             $currentUser $this->security->getUser();
  33.             if ($currentUser) {
  34.                 $currentUser->setTokenFirebase($firebase_token);
  35.                 $currentUser->setTokenFirebaseGeneratedAt(new DateTime());
  36.                 $this->em->persist($currentUser);
  37.                 $this->em->flush();
  38.             }
  39.         }
  40.     }
  41. }