src/Controller/SecurityController.php line 46

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Form\RegistrationType;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  10. class SecurityController extends AbstractController
  11. {
  12.     /**
  13.      * @Route("/inscription", name="security_registration")
  14.      */
  15.     public function registration(Request $requestEntityManagerInterface $managerUserPasswordEncoderInterface $encoder) {
  16.         $user = new User();
  17.         $form $this->createForm(RegistrationType::class, $user);
  18.         $form->handleRequest($request);
  19.         // On soumet le formulaire et teste la valididté des champs
  20.         if($form->isSubmitted() && $form->isValid()) {
  21.             // On encode le mot de passe pour qu'il ne reste pas en clair dans la BDD
  22.             $hash $encoder->encodePassword($user$user->getPassword());
  23.             $user->setPassword($hash);
  24.             $manager->persist($user);
  25.             $manager->flush();
  26.             return $this->redirectToRoute('security_login');
  27.         }
  28.         return $this->render('security/registration.html.twig', [
  29.             'form' =>$form->createView()
  30.         ]);
  31.     }
  32.     /**
  33.      * @Route("/connexion", name="security_login")
  34.      */
  35.     public function login() {
  36.         return $this->render('security/login.html.twig');
  37.     }
  38.     /**
  39.      * @Route("/deconnexion", name="security_logout")
  40.      */
  41.     public function logout() {}
  42.     /**
  43.      * @Route("/access403", name="access403")
  44.      */
  45.     public function access403() {
  46.         return $this->render('security/access403.html.twig');
  47.     }
  48. }