src/Controller/SecurityController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Repository\UserRepository;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  9. class SecurityController extends AbstractController
  10. {
  11.     /**
  12.      * @Route("/login", name="login")
  13.      * @param UserRepository $repoUser
  14.      * @param Request $request
  15.      * @param AuthenticationUtils $authenticationUtils
  16.      *
  17.      * @return Response
  18.      */
  19.     public function login(UserRepository $repoUserRequest $requestAuthenticationUtils $authenticationUtils): Response
  20.     {
  21.         $session                    $request->getSession();
  22.         $isComplaint                $request->get("complaint""0") == "1";
  23.         if ($isComplaint && !$session->get("expressComplaintPrice")) {
  24.             return $this->redirectToRoute("express_complaint_x_prices");
  25.         }
  26.         if ($this->getUser()) {
  27.             if ($isComplaint) {
  28.                 return $this->redirectToRoute('express_complaint_register');
  29.             } else {
  30.                 return $this->redirectToRoute('user_home');
  31.             }
  32.         }
  33.         $session                    $request->getSession();
  34.         $email                      $session->get('login_register_email');
  35.         if (!$email) {
  36.             return $this->redirectToRoute('login_register', ["complaint" => $isComplaint "1" "0"]);
  37.         }
  38.         if (!$repoUser->findByEmail($email)) {
  39.             if ($isComplaint) {
  40.                 return $this->redirectToRoute('express_complaint_register');
  41.             } else {
  42.                 return $this->redirectToRoute('register');
  43.             }
  44.         }
  45.         // get the login error if there is one
  46.         $error $authenticationUtils->getLastAuthenticationError();
  47.         if ($isComplaint) {
  48.             $session->set("userType""login");
  49.             return $this->render('ExpressComplaint/login.html.twig', [
  50.                 'email'                         => $email,
  51.                 'error'                         => $error,
  52.                 'breadcrumbComplaintExpress'    => 'express_complaint_login',
  53.                 'navbarTitle'                   => $request->getSession()->get('expressComplaintCategoryName'),
  54.                 'progressValue'                 => 10,
  55.                 'userType'                      => "login",
  56.             ]);
  57.         }
  58.         return $this->render('Security/login.html.twig', [
  59.             'email' => $email,
  60.             'error' => $error
  61.         ]);
  62.     }
  63.     /**
  64.      * @Route("/logout", name="logout")
  65.      */
  66.     public function logout()
  67.     {
  68.         throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
  69.     }
  70. }