src/Controller/SecurityController.php line 31

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\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\HttpFoundation\RedirectResponse;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
  12. use Symfony\Component\Security\Core\Security;
  13. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  14. use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
  15. class SecurityController extends AbstractController
  16. {
  17.     private $security;
  18.     public function __construct(Security $security)
  19.     {
  20.        $this->security $security;
  21.     }
  22.     /**
  23.      * @Route("/", name="security_connexion", methods={"GET","POST"})
  24.      */
  25.     public function connexion(AuthenticationUtils $utils): Response
  26.     {
  27.         $current_user $this->security->getUser();
  28.         $error $utils->getLastAuthenticationError();
  29.         return $this->render('security/connexion.html.twig', [
  30.             'error' => $error,
  31.             'current_user' => $current_user
  32.         ]);
  33.     }
  34.     /**
  35.      * @Route("/inscription", name="security_registration")
  36.      */
  37.     public function registration(Request $requestEntityManagerInterface $managerUserPasswordEncoderInterface $encoder)
  38.     {
  39.         $user = new User();
  40.         $formSecurity $this->createForm(RegistrationType::class, $user);
  41.         $formSecurity->handleRequest($request);
  42.         
  43.         if($formSecurity->isSubmitted() && $formSecurity->isValid()) {
  44.             $hash $encoder->encodePassword($user$user->getPassword());
  45.             $user->setPassword($hash);
  46.             // $user->setRole('ROLE_ADMIN');
  47.             $user->setRole('ROLE_USER');
  48.             $manager->persist($user);
  49.             $manager->flush();
  50.             $this->addFlash('success''Nouvelle inscription réalisée');
  51.             
  52.             return $this->redirectToRoute('security_registration');
  53.         }
  54.     
  55.         return $this->render('security/registration.html.twig', [
  56.             'formSecurity' => $formSecurity->createView()
  57.         ]);
  58.     }
  59.  
  60. }