Bonjour,
Je cherche à créer la fonction de la modification du mot de passe
Formulaire typique oldPassword et la repétition de password
J'ai écris un code (qui suit) l'idée est là je pense mais ce qui doit me bloquer c'est l'encodage
public function modificationProfil(User $user, Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
$formPassword = $this->createForm(ResetPasswordType::class, $user);
$formPassword -> handleRequest($request);
$passwordActuel = $user->getPassword();
dump($passwordActuel);
if($formPassword->isSubmitted() && $formPassword->isValid())
{
if($formPassword->get('oldPassword')->getData() === $passwordActuel)
{
$user->setPassword($passwordEncoder->encodePassword( $user,$formPassword->get('password') ) );
$this->getDoctrine()->getManager()->flush();
$this->addFlash('notice', 'Votre mot de passe à bien été changé !');
return $this->redirectToRoute('profil', array('id' => $user->getId()));
}
}
return $this -> render('user/profil_modification.html.twig', [
'pass' => $formPassword->createView()
]);
}
Quand je lance la page et que je regarde le dump il est écrit un mdp crypté.
je remplie le formulaire ancien et nouveau mdp quand je valide, la page se réactualise et les champs sont vides
je regarde le dump et là je vois mon nouveau mot de passe non crypté (123456)
je refais le code en enlevant le oldPassword et la condition, juste la répétition du password, forcément il est bien modifié
Donc je pense que mon problème est à cause de l'encodeur.
Merci par avance de vos réponses et conseils