diff --git a/.env.example b/.env.example index 580c283..c9c097a 100644 --- a/.env.example +++ b/.env.example @@ -2,7 +2,7 @@ APP_ENV=dev APP_SECRET= DB_ROOT_PASSWORD=rootpswd -DB_DATABASE=cloudsprint +DB_DATABASE=booknest DB_USERNAME=dev DB_PASSWORD=cfai42 DB_HOST=db diff --git a/src/Controller/RegistrationController.php b/src/Controller/RegistrationController.php index c5c4111..22a3e51 100644 --- a/src/Controller/RegistrationController.php +++ b/src/Controller/RegistrationController.php @@ -1,5 +1,4 @@ entityManager = $entityManager; $this->passwordHasher = $passwordHasher; @@ -30,16 +29,20 @@ class RegistrationController extends AbstractController $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { - // Hacher le mot de passe avant de persister l'utilisateur - $plainPassword = $user->getPassword(); // Récupération du mot de passe brut - $hashedPassword = $this->passwordHasher->hashPassword($user, $plainPassword); // Hachage du mot de passe - $user->setPassword($hashedPassword); // Remplacer le mot de passe brut par le mot de passe haché + $plainPassword = $user->getPassword(); + $confirmPassword = $form->get('confirmPassword')->getData(); + + if ($plainPassword !== $confirmPassword) { + $this->addFlash('error', 'Les mots de passe ne correspondent pas.'); + return $this->redirectToRoute('app_registration'); + } + + $hashedPassword = $this->passwordHasher->hashPassword($user, $plainPassword); + $user->setPassword($hashedPassword); - // Persist de l'utilisateur haché $this->entityManager->persist($user); $this->entityManager->flush(); - // Message flash de succès $this->addFlash('success', 'Votre compte a été créé avec succès !'); return $this->redirectToRoute('home'); } diff --git a/src/Form/RegistrationType.php b/src/Form/RegistrationType.php index 69330e4..885de02 100644 --- a/src/Form/RegistrationType.php +++ b/src/Form/RegistrationType.php @@ -12,39 +12,44 @@ use Symfony\Component\OptionsResolver\OptionsResolver; class RegistrationType extends AbstractType { -public function buildForm(FormBuilderInterface $builder, array $options) -{ -$builder -->add('email', EmailType::class, [ -'label' => 'Email', -'attr' => ['class' => 'form-control'] -]) -->add('password', PasswordType::class, [ -'label' => 'Mot de passe', -'attr' => ['class' => 'form-control'] -]) -->add('pseudo', TextType::class, [ -'label' => 'Pseudo', -'attr' => ['class' => 'form-control'] -]) -->add('firstname', TextType::class, [ -'label' => 'Prénom', -'attr' => ['class' => 'form-control'] -]) -->add('lastname', TextType::class, [ -'label' => 'Nom', -'attr' => ['class' => 'form-control'] -]) -->add('submit', SubmitType::class, [ -'label' => 'S\'inscrire', -'attr' => ['class' => 'btn btn-primary'] -]); -} + public function buildForm(FormBuilderInterface $builder, array $options) + { + $builder + ->add('email', EmailType::class, [ + 'label' => 'Email', + 'attr' => ['class' => 'form-control'] + ]) + ->add('password', PasswordType::class, [ + 'label' => 'Mot de passe', + 'attr' => ['class' => 'form-control'] + ]) + ->add('confirmPassword', PasswordType::class, [ + 'label' => 'Confirmer le mot de passe', + 'attr' => ['class' => 'form-control'], + 'mapped' => false, // Ce champ n'est pas mappé à l'entité User + ]) + ->add('pseudo', TextType::class, [ + 'label' => 'Pseudo', + 'attr' => ['class' => 'form-control'] + ]) + ->add('firstname', TextType::class, [ + 'label' => 'Prénom', + 'attr' => ['class' => 'form-control'] + ]) + ->add('lastname', TextType::class, [ + 'label' => 'Nom', + 'attr' => ['class' => 'form-control'] + ]) + ->add('submit', SubmitType::class, [ + 'label' => 'S\'inscrire', + 'attr' => ['class' => 'btn btn-primary'] + ]); + } -public function configureOptions(OptionsResolver $resolver) -{ -$resolver->setDefaults([ -'data_class' => User::class, -]); -} + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults([ + 'data_class' => User::class, + ]); + } } diff --git a/templates/login/index.html.twig b/templates/login/index.html.twig index 6374360..b9a0193 100644 --- a/templates/login/index.html.twig +++ b/templates/login/index.html.twig @@ -24,21 +24,13 @@ - +
{{ message }}