src/Controller/SecurityController.php line 74

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