src/EventSubscriber/KioskLogoutSubscriber.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use Symfony\Component\HttpFoundation\RedirectResponse;
  5. use Symfony\Component\Routing\RouterInterface;
  6. use Symfony\Component\Security\Http\Event\LogoutEvent;
  7. class KioskLogoutSubscriber implements EventSubscriberInterface
  8. {
  9.     protected $router;
  10.     public function __construct(RouterInterface $router)
  11.     {
  12.         $this->router $router;
  13.     }
  14.     public function onLogout(LogoutEvent $event): void
  15.     {
  16.         $request $event->getRequest();
  17.         $mode $request->query->get('mode');
  18.         $parameters = [];
  19.         if ($mode === 'kiosk') {
  20.             $parameters['mode'] = 'kiosk';
  21.         }
  22.         $response = new RedirectResponse(
  23.             $this->router->generate('app_login'$parameters),
  24.             RedirectResponse::HTTP_SEE_OTHER
  25.         );
  26.         $event->setResponse($response);
  27.     }
  28.     public static function getSubscribedEvents(): array
  29.     {
  30.         return [
  31.             LogoutEvent::class => 'onLogout',
  32.         ];
  33.     }
  34. }