src/Controller/SecurityController.php line 34

Open in your IDE?
  1. <?php
  2. /**
  3.  * This file is part of Synapse.
  4.  *
  5.  * Copyright (C) 2020-2021 Daniel Ménard
  6.  *
  7.  * For copyright and license information, please view the
  8.  * LICENSE file that was distributed with this source code.
  9.  */
  10. declare(strict_types=1);
  11. namespace App\Controller;
  12. use LogicException;
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\Routing\Annotation\Route;
  16. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  17. /**
  18.  * Contrôleur de sécurité.
  19.  *
  20.  * Fournit les routes /login et /logout.
  21.  *
  22.  * @author Daniel Ménard <daniel.menard.35@gmail.com>
  23.  */
  24. class SecurityController extends AbstractController
  25. {
  26.     /**
  27.      * Permet à l'utilisateur de se connecter.
  28.      *
  29.      * @Route("/login", name="login")
  30.      */
  31.     public function login(AuthenticationUtils $authenticationUtils): Response
  32.     {
  33.         // Redirige l'utilisateur s'il est déjà connecté (-> non, pas pratique si on veut changer de user)
  34.         // if ($this->getUser()) {
  35.         //     return $this->redirectToRoute('app_home');
  36.         // }
  37.         // Récupère le dernier message d'erreur de connexion (s'il existe)
  38.         $error $authenticationUtils->getLastAuthenticationError();
  39.         // Récupère le login que l'utilisateur a saisit lors de la dernière tentative
  40.         $lastUsername $authenticationUtils->getLastUsername();
  41.         return $this->render('pages/login.html.twig', ['last_username' => $lastUsername'error' => $error]);
  42.     }
  43.     /**
  44.      * Permet à l'utilisateur de se déconnecter.
  45.      *
  46.      * @Route("/logout", name="logout")
  47.      */
  48.     public function logout(): void
  49.     {
  50.         throw new LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
  51.     }
  52. }