- Ajout dans inscription de la confirmation du mot de passe.

This commit is contained in:
2025-01-30 14:48:12 +01:00
parent f6f7edcf34
commit 4a84f5ec7d
5 changed files with 98 additions and 78 deletions

View File

@ -1,5 +1,4 @@
<?php
namespace App\Controller;
use App\Entity\User;
@ -14,9 +13,9 @@ use Doctrine\ORM\EntityManagerInterface;
class RegistrationController extends AbstractController
{
private $entityManager;
private $passwordHasher; // Correction du nom de la variable
private $passwordHasher;
public function __construct(EntityManagerInterface $entityManager, UserPasswordHasherInterface $passwordHasher) // Correction ici
public function __construct(EntityManagerInterface $entityManager, UserPasswordHasherInterface $passwordHasher)
{
$this->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');
}

View File

@ -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,
]);
}
}