src/EventSubscriber/LogoutSubscriber.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  4. use App\Service\SessionSaisonSportiveService;
  5. use App\Service\UserService;
  6. use App\Services\SessionLieuDeCulteService;
  7. use App\Services\SessionSousEcoleService;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Symfony\Component\HttpFoundation\RedirectResponse;
  10. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  11. use Symfony\Component\Security\Http\Event\LogoutEvent;
  12. class LogoutSubscriber implements EventSubscriberInterface
  13. {
  14.     public function __construct(
  15.         private UrlGeneratorInterface $urlGenerator,
  16.         private SessionLieuDeCulteService $sessionLieuDeCulteService
  17.     ) {}
  18.     public static function getSubscribedEvents(): array
  19.     {
  20.         return [LogoutEvent::class => 'onLogoutEvent'];
  21.     }
  22.     public function onLogoutEvent(LogoutEvent $event): void
  23.     {
  24.         //dd();
  25.         // get the security token of the session that is about to be logged out
  26.         $token $event->getToken();
  27.         $user $token->getUser();
  28.         $session $event->getRequest()->getSession();
  29.         //dd($session->get('sessionSousEcole'));
  30.          // ...
  31.  
  32.         //$this->userService->setIsconnectUserLogout($user,$session);
  33.         $this->sessionLieuDeCulteService->removeSessionSousEcole($session);
  34.         // get the current request
  35.         $request $event->getRequest();
  36.         // get the current response, if it is already set by another listener
  37.         $response $event->getResponse();
  38.         // configure a custom logout response to the homepage
  39.         $response = new RedirectResponse(
  40.             $this->urlGenerator->generate('app_login'),
  41.             RedirectResponse::HTTP_SEE_OTHER
  42.         );
  43.         $event->setResponse($response);
  44.     }
  45. }