<?php
namespace App\EventSubscriber;
use App\Repository\AnnexeRepository;
use App\Services\SessionLieuDeCulteService;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class LoginSuccessSubscriber implements EventSubscriberInterface
{
public function __construct(
private SessionLieuDeCulteService $sessionLieuDeCulteService,
private AnnexeRepository $annexeRepository,
private UrlGeneratorInterface $urlGenerator,
private Security $security
) {}
public static function getSubscribedEvents(): array
{
return [
LoginSuccessEvent::class => 'onLoginSuccessEvent',
];
}
public function onLoginSuccessEvent(LoginSuccessEvent $event): void
{
// ...
$session = $event->getRequest()->getSession();
$user = $this->security->getUser();
$annexe = $this->annexeRepository->findOneBy(['paroisse'=>$user->getParoisse()]);
//$annexe = $this->annexeRepository->findOneBy(array(), array('id' => 'desc'),1,0);
//$sousEcole = $this->sousEcole->findOneBy(['annee_scolaire' => $anneeScolaire]);
//findOneBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0]
//dd($sousEcole);
//dd($anneeScolaire);
if (!$annexe) {
# code...
//S
$response = new RedirectResponse(
$this->urlGenerator->generate('paroroise'),
RedirectResponse::HTTP_SEE_OTHER
);
$event->setResponse($response);
}else{
$this->sessionLieuDeCulteService->setSessionSousEcole($session,$annexe);
}
}
}