src/Controller/SecurityController.php line 168

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. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  18. use App\Entity\User;
  19. use Doctrine\ORM\EntityRepository;
  20. use Doctrine\ORM\EntityManager;
  21. use Doctrine\ORM\EntityManagerInterface;
  22. /**
  23.  * Controller used to manage the application security.
  24.  * See https://symfony.com/doc/current/security/form_login_setup.html.
  25.  *
  26.  * @author Ryan Weaver <weaverryan@gmail.com>
  27.  * @author Javier Eguiluz <javier.eguiluz@gmail.com>
  28.  */
  29. class SecurityController extends AbstractController
  30. {
  31.     use TargetPathTrait;
  32.     #[Route('/register'name'security_register')]
  33.     public function register(UserPasswordHasherInterface $passwordHasher)
  34.     {
  35.         // ... e.g. get the user data from a registration form
  36.         $user = new User();
  37.         $user->setFullName("Test01");
  38.         $user->setUsername("Test01");
  39. //        $user->setPassword($this->passwordHasher->hashPassword($user, "Orangejack"));
  40.         $user->setPassword("Orangejack");
  41.         $user->setEmail("test01@kuaidianba.net");
  42.         //$user->setRoles();
  43.         $em $this->getDoctrine()->getManager();
  44.         $em $this->getDoctrine()->getEntityManager();
  45.         $em->persist($user);
  46.         $em->flush();
  47.         return $this->render('security/login.html.twig', [
  48.             'last_username' => "",
  49.             'error' => "",
  50.         ]);
  51.         // ...
  52.     }
  53.     #[Route('/login'name'security_login')]
  54.     public function login(Request $requestAuthenticationUtils $helper): Response
  55.     {
  56.         // if user is already logged in, don't display the login page again
  57.         if ($this->getUser()) {
  58.             return $this->redirectToRoute('blog_index');
  59.         }
  60.         // this statement solves an edge-case: if you change the locale in the login
  61.         // page, after a successful login you are redirected to a page in the previous
  62.         // locale. This code regenerates the referrer URL whenever the login page is
  63.         // browsed, to ensure that its locale is always the current one.
  64.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  65.         return $this->render('security/login.html.twig', [
  66.             // last username entered by the user (if any)
  67.             'last_username' => $helper->getLastUsername(),
  68. //            'last_username' => "",
  69.             // last authentication error (if any)
  70.             'error' => $helper->getLastAuthenticationError(),
  71.         ]);
  72.     }
  73.     #[Route('/about'name'security_about')]
  74.     public function about(Request $requestAuthenticationUtils $helper): Response
  75.     {
  76.         // this statement solves an edge-case: if you change the locale in the login
  77.         // page, after a successful login you are redirected to a page in the previous
  78.         // locale. This code regenerates the referrer URL whenever the login page is
  79.         // browsed, to ensure that its locale is always the current one.
  80.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  81.         return $this->render('security/about.html.twig', [
  82.             // last username entered by the user (if any)
  83.             'last_username' => $helper->getLastUsername(),
  84.             // last authentication error (if any)
  85.             'error' => $helper->getLastAuthenticationError(),
  86.         ]);
  87.     }
  88.     #[Route('/whatwedo'name'security_whatwedo')]
  89.     public function whatwedo(Request $requestAuthenticationUtils $helper): Response
  90.     {
  91.      // this statement solves an edge-case: if you change the locale in the login
  92.         // page, after a successful login you are redirected to a page in the previous
  93.         // locale. This code regenerates the referrer URL whenever the login page is
  94.         // browsed, to ensure that its locale is always the current one.
  95.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  96.         return $this->render('security/whatwedo.html.twig', [
  97.             // last username entered by the user (if any)
  98.             'last_username' => $helper->getLastUsername(),
  99.             // last authentication error (if any)
  100.             'error' => $helper->getLastAuthenticationError(),
  101.         ]);
  102.     }
  103.     #[Route('/fees'name'security_fees')]
  104.     public function fees(Request $requestAuthenticationUtils $helper): Response
  105.     {
  106.      // this statement solves an edge-case: if you change the locale in the login
  107.         // page, after a successful login you are redirected to a page in the previous
  108.         // locale. This code regenerates the referrer URL whenever the login page is
  109.         // browsed, to ensure that its locale is always the current one.
  110.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  111.         return $this->render('security/fees.html.twig', [
  112.             // last username entered by the user (if any)
  113.             'last_username' => $helper->getLastUsername(),
  114.             // last authentication error (if any)
  115.             'error' => $helper->getLastAuthenticationError(),
  116.         ]);
  117.     }
  118.     #[Route('/contact'name'security_contact')]
  119.     public function contact(Request $requestAuthenticationUtils $helper): Response
  120.     {
  121.      // this statement solves an edge-case: if you change the locale in the login
  122.         // page, after a successful login you are redirected to a page in the previous
  123.         // locale. This code regenerates the referrer URL whenever the login page is
  124.         // browsed, to ensure that its locale is always the current one.
  125.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  126.         return $this->render('security/contact.html.twig', [
  127.             // last username entered by the user (if any)
  128.             'last_username' => $helper->getLastUsername(),
  129.             // last authentication error (if any)
  130.             'error' => $helper->getLastAuthenticationError(),
  131.         ]);
  132.     }
  133.     #[Route('/agreements'name'security_agreements')]
  134.     public function agreements(Request $requestAuthenticationUtils $helper): Response
  135.     {
  136.      // this statement solves an edge-case: if you change the locale in the login
  137.         // page, after a successful login you are redirected to a page in the previous
  138.         // locale. This code regenerates the referrer URL whenever the login page is
  139.         // browsed, to ensure that its locale is always the current one.
  140.         $this->saveTargetPath($request->getSession(), 'main'$this->generateUrl('admin_index'));
  141.         return $this->render('security/agreements.html.twig', [
  142.             // last username entered by the user (if any)
  143.             'last_username' => $helper->getLastUsername(),
  144.             // last authentication error (if any)
  145.             'error' => $helper->getLastAuthenticationError(),
  146.         ]);
  147.     }
  148.     /**
  149.      * This is the route the user can use to logout.
  150.      *
  151.      * But, this will never be executed. Symfony will intercept this first
  152.      * and handle the logout automatically. See logout in config/packages/security.yaml
  153.      */
  154.     #[Route('/logout'name'security_logout')]
  155.     public function logout(): void
  156.     {
  157.         throw new \Exception('This should never be reached!');
  158.     }
  159. }