src/Controller/SecurityController.php line 76

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Service\LoggerService;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\RequestStack;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  10. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  11. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  12. /**
  13.  * @Route(
  14.  *      {
  15.  *          "es": "/{_locale}",
  16.  *          "ca": "/{_locale}",
  17.  *          "eu": "/{_locale}",
  18.  *      },
  19.  *      requirements={"_locale": "%app.supported_locales%"}
  20.  * )
  21.  */
  22. class SecurityController extends AbstractController
  23. {
  24.     public function __construct(
  25.         private LoggerService $logger,
  26.         private RequestStack $request_stack,
  27.         private SessionInterface $session
  28.     ) {
  29.     }
  30.     /**
  31.      * @Route("", name="app_index")
  32.      */
  33.     public function index(AuthenticationUtils $authenticationUtilsRequest $request): Response
  34.     {
  35.         /** @var \App\Entity\User $logged_user */
  36.         $logged_user $this->getUser();
  37.         if ($logged_user) {
  38.             $institutionId $logged_user->getInstitution()->getId();
  39.             $locale = ($institutionId == 2) ? 'ca' 'es';
  40.             if ($institutionId == 2) {
  41.                 $locale 'ca';
  42.                 $this->request_stack->getCurrentRequest()->setLocale($locale);
  43.                 $this->session->set('_locale'$locale);
  44.                 $redirectUrl $this->generateUrl(
  45.                     'app_actAs',
  46.                     ['_locale' => $locale],
  47.                     UrlGeneratorInterface::ABSOLUTE_URL
  48.                 );
  49.                 return $this->redirect($redirectUrl);
  50.             }
  51.             return $this->redirectToRoute('app_actAs');
  52.         }
  53.         // get the login error if there is one
  54.         $error $authenticationUtils->getLastAuthenticationError();
  55.         // last username entered by the user
  56.         $lastUsername $authenticationUtils->getLastUsername();
  57.         //dd($logged_user);
  58.         return $this->redirectToRoute('app_login');
  59.         // return $this->render('security/login.html.twig', ['last_username' => $lastUsername, 'error' => $error]);
  60.     }
  61.     /**
  62.      * @Route("/login", name="app_login")
  63.      */
  64.     public function login(AuthenticationUtils $authenticationUtils): Response
  65.     {
  66.         /** @var \App\Entity\User $logged_user */
  67.         $logged_user $this->getUser();
  68.         if ($logged_user) {
  69.             $this->logger->info('Iniciado sesion', ['User' => $logged_user->getId()]);
  70.             return $this->redirectToRoute('app_index');
  71.         }
  72.         // get the login error if there is one
  73.         $error $authenticationUtils->getLastAuthenticationError();
  74.         // last username entered by the user
  75.         $lastUsername $authenticationUtils->getLastUsername();
  76.         return $this->render(
  77.             'security/login.html.twig',
  78.             ['last_username' => $lastUsername'error' => $error]
  79.         );
  80.     }
  81.     /**
  82.      * @Route("/logout", name="app_logout")
  83.      */
  84.     public function logout(): void
  85.     {
  86.         /** @var \App\Entity\User $logged_user */
  87.         $logged_user $this->getUser();
  88.         $this->logger->info(
  89.             'Cerrado sesion',
  90.             ['User' => $logged_user->getId()]
  91.         );
  92.         throw new \LogicException(
  93.             'This method can be blank - it will be intercepted by the logout key on your firewall.'
  94.         );
  95.     }
  96.     /**
  97.      * @Route("/waiting_verify", name="app_waiting_verify")
  98.      */
  99.     public function waitingVerify(): Response
  100.     {
  101.         /** @var \App\Entity\User $logged_user */
  102.         $logged_user $this->getUser();
  103.         if ($logged_user) {
  104.             if ($logged_user->isVerified()) {
  105.                 return $this->redirectToRoute('app_index');
  106.             }
  107.         }
  108.         return $this->render('security/waiting_verify.html.twig');
  109.     }
  110.     /**
  111.      * @Route("/banned", name="app_banned")
  112.      */
  113.     public function banned(): Response
  114.     {
  115.         /** @var \App\Entity\User $logged_user */
  116.         $logged_user $this->getUser();
  117.         if (!$logged_user->isBanned()) {
  118.             return $this->redirectToRoute('app_index');
  119.         }
  120.         return $this->render('security/banned.html.twig', [
  121.             'user' => $logged_user,
  122.         ]);
  123.     }
  124. }