src/EventSubscriber/SwitchUserSubscriber.php line 19

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\EventSubscriber;
  4. use App\Service\Session\SessionService;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\Security\Http\Event\SwitchUserEvent;
  7. use Symfony\Component\Security\Http\SecurityEvents;
  8. class SwitchUserSubscriber implements EventSubscriberInterface
  9. {
  10.     public function __construct(
  11.         private SessionService $sessionService,
  12.     ) {
  13.     }
  14.     public function onSwitchUser(SwitchUserEvent $event): void
  15.     {
  16.         $this->sessionService->switchUser($event->getTargetUser());
  17.     }
  18.     public static function getSubscribedEvents(): array
  19.     {
  20.         return [
  21.             // constant for security.switch_user
  22.             SecurityEvents::SWITCH_USER => 'onSwitchUser',
  23.         ];
  24.     }
  25. }