src/Controller/Front/SecurityController.php line 64
<?phpdeclare(strict_types=1);namespace App\Controller\Front;use App\Entity\Activite;use App\Entity\Client;use App\Entity\Utilisateur;use App\Event\ForgottenPasswordEvent;use App\Form\ForgottenPasswordType;use Doctrine\ORM\EntityManagerInterface;use Exception;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Bundle\SecurityBundle\Security;use Symfony\Component\EventDispatcher\EventDispatcherInterface;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;class SecurityController extends AbstractController{#[Route('/login', name: 'login', priority: 10)]public function login(AuthenticationUtils $authenticationUtils): Response{$error = $authenticationUtils->getLastAuthenticationError();$lastUsername = $authenticationUtils->getLastUsername();return $this->render('login/index.html.twig', ['last_username' => $lastUsername,'error' => $error,'target_path' => '/admin',]);}#[Route('/login/redirect', name: 'login_redirect', priority: 200)]public function loginRedirect(EntityManagerInterface $em, Security $security): Response{$route = 'client_activites';/** @var Utilisateur $utilisateur */$utilisateur = $this->getUser();$client = $utilisateur->getClient();if (null !== $client) {$activiteCount = $em->getRepository(Activite::class)->count(['client' => $client]);if (1 === $activiteCount) {/** @var Activite $activite */$activite = $em->getRepository(Activite::class)->findOneBy(['client' => $client]);return $this->redirectToRoute('client_activite_choix_annee', ['activiteSlug' => $activite->getSlug()]);}}if ($security->isGranted('ROLE_ADMIN')) {$route = 'admin';}return $this->redirectToRoute($route);}#[Route('/mot-de-passe-oublie', name: 'forgotten_password', priority: 10)]public function forgottenPassword(Request $request, EntityManagerInterface $em, EventDispatcherInterface $eventDispatcher): Response{$form = $this->createForm(ForgottenPasswordType::class);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {/** @var string $email */$email = $form->get('email')->getData();$client = $em->getRepository(Client::class)->findOneByEmail($email);if (null === $client) {$this->addFlash('danger', 'Aucun client avec cet email.');return $this->redirectToRoute('forgotten_password');}if (null === $client->getPasswordToken()) {$client->generatePasswordToken();}$this->addFlash('success', 'Un email contenant un lien pour modifier votre mot de passe vous a été envoyé.');$event = new ForgottenPasswordEvent($client);$eventDispatcher->dispatch($event, ForgottenPasswordEvent::NAME);}return $this->render('login/forgotten_password.html.twig', ['form' => $form,]);}#[Route('/logout', name: 'logout', priority: 10)]public function logout(): never{// controller can be blank: it will never be called!throw new Exception('Don\'t forget to activate logout in security.yaml');}}