src/Controller/SecurityController.php line 33

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace App\Controller;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  16. use Symfony\Component\Security\Http\Util\TargetPathTrait;
  17. /**
  18.  * Controller used to manage the application security.
  19.  * See https://symfony.com/doc/current/security/form_login_setup.html.
  20.  *
  21.  * @author Ryan Weaver <weaverryan@gmail.com>
  22.  * @author Javier Eguiluz <javier.eguiluz@gmail.com>
  23.  */
  24. class SecurityController extends AbstractController
  25. {
  26.     use TargetPathTrait;
  27.     #[Route('/login'name'security_login')]
  28.     public function login(Request $requestAuthenticationUtils $helper): Response
  29.     {
  30.         // if user is already logged in, don't display the login page again
  31.         if ($this->getUser()) {
  32.             return $this->redirectToRoute('blog_index');
  33.         }
  34.         // this statement solves an edge-case: if you change the locale in the login
  35.         // page, after a successful login you are redirected to a page in the previous
  36.         // locale. This code regenerates the referrer URL whenever the login page is
  37.         // browsed, to ensure that its locale is always the current one.
  38.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  39.         return $this->render('security/login.html.twig', [
  40.             // last username entered by the user (if any)
  41.            // 'last_username' => $helper->getLastUsername(),
  42.             // last authentication error (if any)
  43.             'error' => $helper->getLastAuthenticationError(),
  44.         ]);
  45.     }
  46.     #[Route('/about'name'security_about')]
  47.     public function about(Request $requestAuthenticationUtils $helper): Response
  48.     {
  49.         // this statement solves an edge-case: if you change the locale in the login
  50.         // page, after a successful login you are redirected to a page in the previous
  51.         // locale. This code regenerates the referrer URL whenever the login page is
  52.         // browsed, to ensure that its locale is always the current one.
  53.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  54.         return $this->render('security/about.html.twig', [
  55.             // last username entered by the user (if any)
  56.             'last_username' => $helper->getLastUsername(),
  57.             // last authentication error (if any)
  58.             'error' => $helper->getLastAuthenticationError(),
  59.         ]);
  60.     }
  61.     #[Route('/whatwedo'name'security_whatwedo')]
  62.     public function whatwedo(Request $requestAuthenticationUtils $helper): Response
  63.     {
  64.      // this statement solves an edge-case: if you change the locale in the login
  65.         // page, after a successful login you are redirected to a page in the previous
  66.         // locale. This code regenerates the referrer URL whenever the login page is
  67.         // browsed, to ensure that its locale is always the current one.
  68.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  69.         return $this->render('security/whatwedo.html.twig', [
  70.             // last username entered by the user (if any)
  71.             'last_username' => $helper->getLastUsername(),
  72.             // last authentication error (if any)
  73.             'error' => $helper->getLastAuthenticationError(),
  74.         ]);
  75.     }
  76.     #[Route('/fees'name'security_fees')]
  77.     public function fees(Request $requestAuthenticationUtils $helper): Response
  78.     {
  79.      // this statement solves an edge-case: if you change the locale in the login
  80.         // page, after a successful login you are redirected to a page in the previous
  81.         // locale. This code regenerates the referrer URL whenever the login page is
  82.         // browsed, to ensure that its locale is always the current one.
  83.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  84.         return $this->render('security/fees.html.twig', [
  85.             // last username entered by the user (if any)
  86.             'last_username' => $helper->getLastUsername(),
  87.             // last authentication error (if any)
  88.             'error' => $helper->getLastAuthenticationError(),
  89.         ]);
  90.     }
  91.     #[Route('/contact'name'security_contact')]
  92.     public function contact(Request $requestAuthenticationUtils $helper): Response
  93.     {
  94.      // this statement solves an edge-case: if you change the locale in the login
  95.         // page, after a successful login you are redirected to a page in the previous
  96.         // locale. This code regenerates the referrer URL whenever the login page is
  97.         // browsed, to ensure that its locale is always the current one.
  98.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  99.         return $this->render('security/contact.html.twig', [
  100.             // last username entered by the user (if any)
  101.             'last_username' => $helper->getLastUsername(),
  102.             // last authentication error (if any)
  103.             'error' => $helper->getLastAuthenticationError(),
  104.         ]);
  105.     }
  106.     #[Route('/agreements'name'security_agreements')]
  107.     public function agreements(Request $requestAuthenticationUtils $helper): Response
  108.     {
  109.      // this statement solves an edge-case: if you change the locale in the login
  110.         // page, after a successful login you are redirected to a page in the previous
  111.         // locale. This code regenerates the referrer URL whenever the login page is
  112.         // browsed, to ensure that its locale is always the current one.
  113.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  114.         return $this->render('security/agreements.html.twig', [
  115.             // last username entered by the user (if any)
  116.             'last_username' => $helper->getLastUsername(),
  117.             // last authentication error (if any)
  118.             'error' => $helper->getLastAuthenticationError(),
  119.         ]);
  120.     }
  121.     /**
  122.      * This is the route the user can use to logout.
  123.      *
  124.      * But, this will never be executed. Symfony will intercept this first
  125.      * and handle the logout automatically. See logout in config/packages/security.yaml
  126.      */
  127.     #[Route('/logout'name'security_logout')]
  128.     public function logout(): void
  129.     {
  130.         throw new \Exception('This should never be reached!');
  131.     }
  132. }