src/Controller/Security/RegistrationController.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Security;
  3. use App\Entity\Pemploye;
  4. use App\Entity\Users;
  5. use App\Form\RegistrationFormType;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\JsonResponse;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. use Symfony\Contracts\Translation\TranslatorInterface;
  14. class RegistrationController extends AbstractController
  15. {
  16.     #[Route('/register'name'app_register')]
  17.     public function register(): Response
  18.     {
  19.         return $this->render('security/register.html.twig', [
  20.         ]);
  21.     }
  22.     #[Route('/changepassword'name'app_register_changepassword')]
  23.     public function changepassword(): Response
  24.     {
  25.         return $this->render('security/change_password.html.twig', [
  26.         ]);
  27.     }
  28.     #[Route('/app_register_changepassword_save'name'app_register_changepassword_save'options: ['expose' => true])]
  29.     public function app_register_changepassword_save(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): Response
  30.     {
  31.         if($request->get('password') != $request->get('passwordc')) {
  32.             return new JsonResponse('Les mots de passe ne correspondent pas'500);
  33.         }
  34.         $user $entityManager->getRepository(Pemploye::class)->find($this->getUser());
  35.         $user->setPassword($userPasswordHasher->hashPassword(
  36.             $user,
  37.             $request->get('password')
  38.         ));
  39.         $user->setIsFirstLogin(false);
  40.         $entityManager->flush();
  41.         return new JsonResponse('ok');
  42.     }
  43.     #[Route('/new'name'app_register_new'options: ['expose' => true])]
  44.     public function new(Request $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): Response
  45.     {
  46.         if($request->get('password') != $request->get('passwordc')) {
  47.             return new JsonResponse('Les mots de passe ne correspondent pas'500);
  48.         }
  49.         $user $entityManager->getRepository(Users::class)->findOneBy(['username' => trim($request->get('username'))]);
  50.         if($user) {
  51.             return new JsonResponse('Username déja exist'500);
  52.         }
  53.         $user = new Users();
  54.         $user->setUsername(trim($request->get('username')));
  55.         $user->setEmail($request->get('email'));
  56.         $user->setPrenom($request->get('prenom'));
  57.         $user->setCreated(new \DateTime());
  58.         $user->setNom($request->get('nom'));
  59.         $user->setRoles(['ROLE_USER']);
  60.         $user->setPassword($userPasswordHasher->hashPassword(
  61.             $user,
  62.             $request->get('password')
  63.         ));
  64.         $user->isEnable(false);
  65.         $entityManager->persist($user);
  66.         $entityManager->flush();
  67.         return new JsonResponse("Veuillez contacter l'administrateur pour active votre compte!");
  68.     }
  69. }