src/Controller/SecurityController.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Configuration;
  4. use Symfony\Contracts\Translation\TranslatorInterface;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  11. class SecurityController extends AbstractController
  12. {
  13.     protected $em;
  14.     private $authenticationUtils;
  15.     private $translator;
  16.     public function __construct(EntityManagerInterface $emAuthenticationUtils $authenticationUtilsTranslatorInterface $translator)
  17.     {
  18.         $this->em $em;
  19.         $this->authenticationUtils $authenticationUtils;
  20.         $this->translator $translator;
  21.     }
  22.     /**
  23.      * @Route("/login", name="login")
  24.      */
  25.     public function loginAction(Request $request)
  26.     {
  27.         // Mensaje de depuración
  28.         // dump('Estoy en el controlador de login');
  29.         return $this->render(
  30.             'login/login.html.twig',
  31.             [
  32.                 'last_username' => $this->authenticationUtils->getLastUsername(),
  33.                 'error'         => $this->authenticationUtils->getLastAuthenticationError(),
  34.             ]
  35.         );
  36.     }
  37.     /**
  38.      * @Route("/kickout", name="kickout")
  39.      */
  40.     public function KickoutAction(Request $request)
  41.     {
  42.         $this->get('security.token_storage')->setToken(null);
  43.         $session $request->getSession();
  44.         $session->invalidate(); //here we can now clear the session.
  45.         return $this->render('kickout/kickout.html.twig');
  46.     }
  47.     /**
  48.      * @Route("/login_check", name="security_login_check")
  49.      */
  50.     public function loginCheckAction()
  51.     {
  52.         // Este método se encarga de procesar la autenticación basada en formularios.
  53.         // Symfony maneja la autenticación automáticamente, por lo que no es necesario agregar lógica adicional aquí.
  54.         // Si necesitas realizar alguna acción adicional después de la autenticación, puedes hacerlo aquí.
  55.         // Por ejemplo, redirigir al usuario a una página específica después de iniciar sesión.
  56.         return $this->redirect('/');
  57.     }
  58.     /**
  59.      * @Route("/logout", name="logout")
  60.      */
  61.     public function logoutAction()
  62.     {
  63.         // This action is handled by the security system, so it does not require any custom logic.
  64.     }
  65.     public function getLicencias()
  66.     {
  67.         $repository $this->em->getRepository(Configuration::class);
  68.         $configuration $repository->findOneById(1);
  69.         return $configuration->getLicenses();
  70.     }
  71. }