src/EventListener/DoctrineExtensionSubscriber.php line 37

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Gedmo\Blameable\BlameableListener;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpKernel\KernelEvents;
  6. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  7. use Symfony\Component\Security\Core\User\User;
  8. class DoctrineExtensionSubscriber implements EventSubscriberInterface
  9. {
  10.     /**
  11.      * @var BlameableListener
  12.      */
  13.     private $blameableListener;
  14.     /**
  15.      * @var TokenStorageInterface
  16.      */
  17.     private $tokenStorage;
  18.     public function __construct(
  19.         BlameableListener $blameableListener,
  20.         TokenStorageInterface $tokenStorage
  21.     ) {
  22.         $this->blameableListener $blameableListener;
  23.         $this->tokenStorage $tokenStorage;
  24.     }
  25.     public static function getSubscribedEvents()
  26.     {
  27.         return [
  28.             KernelEvents::REQUEST => 'onKernelRequest'
  29.         ];
  30.     }
  31.     public function onKernelRequest(): void
  32.     {
  33.         if (null !== $this->tokenStorage &&
  34.             null !== $this->tokenStorage->getToken() &&
  35.             true === $this->tokenStorage->getToken()->isAuthenticated()
  36.         ) {
  37.             $user $this->tokenStorage->getToken()->getUser();
  38.             if ($user instanceof User && 'anonymousOnlineBooking' !== $user->getUsername()) {
  39.                 $this->blameableListener->setUserValue($this->tokenStorage->getToken()->getUser());
  40.             }
  41.         }
  42.     }
  43. }