src/Controller/UserController.php line 58

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\RegistrationType;
  4. use App\Repository\UserRepository;
  5. use DateTime;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  12. // lundi 03-04 - version corrigée récupérée du git clone mais identique à la mienne
  13. class UserController extends AbstractController
  14. {
  15.     #[Route('/inscription'name'app_user_registration')]
  16.     public function registration(
  17.         Request $request,
  18.         UserPasswordHasherInterface $encoder,
  19.         UserRepository $repository,
  20.     ): Response {
  21.         // Je créé le formulaire
  22.         $form $this->createForm(RegistrationType::class);
  23.         // Je remplie le formulaire avec les données de l'utilisateur
  24.         $form->handleRequest($request);
  25.         // Je valide le formulaire
  26.         if ($form->isSubmitted() && $form->isValid()) {
  27.             // Je récupére l'utilisateur du formulaire
  28.             $user $form
  29.                 ->getData()
  30.                 // On spécifie les dates
  31.                 ->setCreatedAt(new DateTime())
  32.                 ->setUpdatedAt(new DateTime())
  33.                 // On encrypte le mot de passe
  34.                 ->setPassword($encoder->hashPassword(
  35.                     $form->getData(),
  36.                     $form->getData()->getPassword()
  37.                 ));
  38.             // J'enregistre l'utilisateur
  39.             $repository->save($usertrue);
  40.             // @TODO : Je redirige vers la page de connexion
  41.             return new Response('OK');
  42.         }
  43.         // J'affiche la page d'inscription
  44.         return $this->render('user/registration.html.twig', [
  45.             'form' => $form->createView(),
  46.         ]);
  47.     }
  48.     #[Route(path'/connexion'name'app_login')]
  49.     public function login(AuthenticationUtils $authenticationUtils): Response
  50.     {
  51.         // if ($this->getUser()) {
  52.         //     return $this->redirectToRoute('target_path');
  53.         // }
  54.         // get the login error if there is one
  55.         $error $authenticationUtils->getLastAuthenticationError();
  56.         // last username entered by the user
  57.         $lastUsername $authenticationUtils->getLastUsername();
  58.         return $this->render('user/login.html.twig', ['last_username' => $lastUsername'error' => $error]);
  59.     }
  60.     #[Route(path'/deconnexion'name'app_logout')]
  61.     public function logout(): void
  62.     {
  63.         throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
  64.     }
  65. }