src/Controller/IndexController.php line 59

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller;
  4. use App\Entity\Account;
  5. use App\Service\AccountService;
  6. use App\Service\Security;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class IndexController extends AbstractController
  12. {
  13.     #[Route('/'name'home')]
  14.     public function accountLogin(Security $securityRequest $requestAccountService $accountService): Response
  15.     {
  16.         // Redirige l'utilisateur déjà connecté
  17.         if ($security->getUser() instanceof Account) {
  18.             return $this->redirectToRoute('app');
  19.         }
  20.         // Traite le formulaire de connexion
  21.         if ($request->isMethod('POST') && $this->isCsrfTokenValid('authenticate'$request->request->get('csrf'))) {
  22.             // On récupère le compte qui s'authentifie
  23.             $account $accountService->getByLogin(
  24.                 $request->request->get('email'),
  25.                 $request->request->get('password'),
  26.             );
  27.             // Si un compte est valide, on le monte en session
  28.             if ($account instanceof Account) {
  29.                 if ($account->isEnable()) {
  30.                     $security->login($account$request);
  31.                     return $this->redirectToRoute('app');
  32.                 } else {
  33.                     $this->addFlash('warning''Votre compte est désactivé. Contactez contact@skeewai.com pour le réactiver.');
  34.                     return $this->render('security/account_login.html.twig');
  35.                 }
  36.             }
  37.             // Gestion d'un message d'erreur
  38.             $this->addFlash('warning''Ces identifiants ne permettent pas de retrouver votre compte');
  39.         }
  40.         // Affiche le formulaire de connexion
  41.         return $this->render('security/account_login.html.twig');
  42.     }
  43.     #[Route('/mentions-legales'name'legal')]
  44.     public function legal(): Response
  45.     {
  46.         return $this->render('index/legal.html.twig');
  47.     }
  48.     #[Route('/cgu'name'cgu')]
  49.     public function cgu(): Response
  50.     {
  51.         return $this->render('index/cgu.html.twig');
  52.     }
  53. }