src/EventSubscriber/LoginSuccessSubscriber.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Repository\AnnexeRepository;
  4. use App\Services\SessionLieuDeCulteService;
  5. use Symfony\Component\Security\Core\Security;
  6. use Symfony\Component\HttpFoundation\RedirectResponse;
  7. use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
  8. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class LoginSuccessSubscriber implements EventSubscriberInterface
  11. {
  12.     public function __construct(
  13.         private SessionLieuDeCulteService $sessionLieuDeCulteService,
  14.         private AnnexeRepository $annexeRepository,
  15.         private UrlGeneratorInterface $urlGenerator,
  16.         private Security $security
  17.     ) {}
  18.     public static function getSubscribedEvents(): array
  19.     {
  20.         return [
  21.             LoginSuccessEvent::class => 'onLoginSuccessEvent',
  22.         ];
  23.     }
  24.     public function onLoginSuccessEvent(LoginSuccessEvent $event): void
  25.     {
  26.         // ...
  27.         $session $event->getRequest()->getSession();
  28.         $user $this->security->getUser();
  29.         $annexe $this->annexeRepository->findOneBy(['paroisse'=>$user->getParoisse()]);
  30.         //$annexe = $this->annexeRepository->findOneBy(array(), array('id' => 'desc'),1,0);
  31.         //$sousEcole = $this->sousEcole->findOneBy(['annee_scolaire' => $anneeScolaire]);
  32.         //findOneBy(array('name' => 'Registration'),array('name' => 'ASC'),1 ,0)[0]
  33.         //dd($sousEcole);
  34.         //dd($anneeScolaire);
  35.         if (!$annexe) {
  36.             # code...
  37.             //S
  38.             $response = new RedirectResponse(
  39.                 $this->urlGenerator->generate('paroroise'),
  40.                 RedirectResponse::HTTP_SEE_OTHER
  41.             );
  42.             $event->setResponse($response);
  43.         }else{
  44.             $this->sessionLieuDeCulteService->setSessionSousEcole($session,$annexe);
  45.         }
  46.         
  47.     }
  48. }