<?php
namespace App\EventSubscriber;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use App\Service\SessionSaisonSportiveService;
use App\Service\UserService;
use App\Services\SessionLieuDeCulteService;
use App\Services\SessionSousEcoleService;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Http\Event\LogoutEvent;
class LogoutSubscriber implements EventSubscriberInterface
{
public function __construct(
private UrlGeneratorInterface $urlGenerator,
private SessionLieuDeCulteService $sessionLieuDeCulteService
) {}
public static function getSubscribedEvents(): array
{
return [LogoutEvent::class => 'onLogoutEvent'];
}
public function onLogoutEvent(LogoutEvent $event): void
{
//dd();
// get the security token of the session that is about to be logged out
$token = $event->getToken();
$user = $token->getUser();
$session = $event->getRequest()->getSession();
//dd($session->get('sessionSousEcole'));
// ...
//$this->userService->setIsconnectUserLogout($user,$session);
$this->sessionLieuDeCulteService->removeSessionSousEcole($session);
// get the current request
$request = $event->getRequest();
// get the current response, if it is already set by another listener
$response = $event->getResponse();
// configure a custom logout response to the homepage
$response = new RedirectResponse(
$this->urlGenerator->generate('app_login'),
RedirectResponse::HTTP_SEE_OTHER
);
$event->setResponse($response);
}
}