src/Controller/SecurityController.php line 22

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Form\UserType;
  5. use App\Form\User2Type;
  6. use App\Repository\UserRepository;
  7. use App\Repository\ExpertRepository;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
  13. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  14. class SecurityController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("/login", name="app_login")
  18.      */
  19.     public function login(AuthenticationUtils $authenticationUtils): Response
  20.     {
  21.         // if ($this->getUser()) {
  22.         //     return $this->redirectToRoute('target_path');
  23.         // }
  24.         // get the login error if there is one
  25.         $error $authenticationUtils->getLastAuthenticationError();
  26.         // last username entered by the user
  27.         $lastUsername $authenticationUtils->getLastUsername();
  28.         return $this->render('security/login.html.twig', ['last_username' => $lastUsername'error' => $error'error2' => '''success' => '']);
  29.     }
  30.     /**
  31.      * @Route("/register", name="register", methods={"GET", "POST"})
  32.      */
  33.     public function new(UserPasswordHasherInterface $passwordHasherRequest $requestUserRepository $userRepository): Response
  34.     {
  35.         $user = new User();
  36.         $form $this->createForm(UserType::class, $user);
  37.         $form->handleRequest($request);
  38.         if ($form->isSubmitted() && $form->isValid()) {
  39.             $users $userRepository->findByUsername($user->getUsername());
  40.             $error "";
  41.             if ($user->getPassword() != $form['password2']->getData())
  42.                 $error "Error: Les mots de passe ne correspondent pas!";
  43.             if (count($users) > 0)    $error "Erreur: cet utilisateur existe déjà dans la base!";
  44.             if ($error != "")       return $this->render('user/new.html.twig', ['user' => $user'form' => $form->createView(), 'error' => $error]);
  45.             $hashedPassword $passwordHasher->hashPassword(
  46.                 $user,
  47.                 $user->getPassword()
  48.             );
  49.             $user->setPassword($hashedPassword);
  50.             $user->setRoles(array('ROLE_USER'));
  51.             $userRepository->add($usertrue);
  52.             $this->addFlash('success''Votre compte a bien été créé!');
  53.             return $this->redirectToRoute('accueil');
  54.         }
  55.         return $this->renderForm('user/new.html.twig', [
  56.             'user' => $user,
  57.             'form' => $form,
  58.             'error' => '',
  59.         ]);
  60.     }
  61.     /**
  62.      * @Route("/password-reset", name="password_reset", methods={"GET", "POST"})
  63.      */
  64.     public function passwordReset(UserPasswordHasherInterface $passwordHasherRequest $requestUserRepository $userRepository): Response
  65.     {
  66.         $user2 = new User();
  67.         $form $this->createForm(User2Type::class, $user2);
  68.         $form->handleRequest($request);
  69.         if ($form->isSubmitted() && $form->isValid()) {
  70.             $user $userRepository->findOneBy([
  71.                 "username" => $user2->getUsername(),
  72.                 "email" => $user2->getEmail()]
  73.             );
  74.             $error "";
  75.             if ($user2->getPassword() != $form['password2']->getData())
  76.                 $error "Error: Les mots de passe ne correspondent pas!";
  77.             if ($user == null)  $error "Error: Utilisateur invalide!";
  78.             if ($error != "")       return $this->render('user/password-reset.html.twig', ['user' => $user2'form' => $form->createView(), 'error' => $error]);
  79.             $hashedPassword $passwordHasher->hashPassword(
  80.                 $user,
  81.                 $user2->getPassword()
  82.             );
  83.             $user->setPassword($hashedPassword);
  84.             $userRepository->add($usertrue);
  85.             $this->addFlash('success''Votre mot de passe a bien été modifié!');
  86.             return $this->redirectToRoute('accueil');
  87.         }
  88.         return $this->renderForm('user/password-reset.html.twig', [
  89.             'user' => $user2,
  90.             'form' => $form,
  91.             'error' => '',
  92.         ]);
  93.     }
  94.     /**
  95.      * @Route("/logout", name="app_logout")
  96.      */
  97.     public function logout(): void
  98.     {
  99.         throw new \LogicException('This method can be blank - it will be intercepted by the logout key on your firewall.');
  100.     }
  101. }