src/Controller/SecurityController.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\Security\Core\Security;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  8. class SecurityController extends AbstractController
  9. {
  10.     #[Route(path'/connexion'name'app_login')]
  11.     public function login(AuthenticationUtils $authenticationUtilsSecurity $security): Response
  12.     {
  13.         // Si l'utilisateur est déjà connecté, le rediriger selon son rôle
  14.         if ($security->getUser()) {
  15.             // Ordre de priorité pour la redirection
  16.             if ($security->isGranted('ROLE_SUPER_ADMIN') || $security->isGranted('ROLE_ADMIN')) {
  17.                 return $this->redirectToRoute('app_dashboard');
  18.             } elseif ($security->isGranted('ROLE_COMPTABLE')) {
  19.                 return $this->redirectToRoute('app_comptabilite_index');
  20.             } elseif ($security->isGranted('ROLE_RH')) {
  21.                 return $this->redirectToRoute('app_rh_dashboard');
  22.             } elseif ($security->isGranted('ROLE_CAISSIER')) {
  23.                 return $this->redirectToRoute('app_caisse_dashboard');
  24.             } elseif ($security->isGranted('ROLE_MAGASINIER')) {
  25.                 return $this->redirectToRoute('app_produit_index');
  26.             } elseif ($security->isGranted('ROLE_VENDEUR')) {
  27.                 return $this->redirectToRoute('app_panier');
  28.             } elseif ($security->isGranted('ROLE_LIVREUR')) {
  29.                 return $this->redirectToRoute('app_livreur_dashboard');
  30.             }
  31.         }
  32.         // Récupérer l'erreur de connexion s'il y en a une
  33.         $error $authenticationUtils->getLastAuthenticationError();
  34.         
  35.         // Dernier nom d'utilisateur saisi par l'utilisateur
  36.         $lastUsername $authenticationUtils->getLastUsername();
  37.         return $this->render('security/login.html.twig', [
  38.             'last_username' => $lastUsername,
  39.             'error' => $error
  40.         ]);
  41.     }
  42.     #[Route(path'/logout'name'app_logout')]
  43.     public function logout(): void
  44.     {
  45.         throw new \LogicException('Cette méthode peut rester vide - elle sera interceptée par la clé de déconnexion de votre firewall.');
  46.     }
  47. }
  48.