Bonjour,
Lorque j’ajoute un utilisateur le mot de passe est bien chiffré en base grace à

public function beforeSave($options = array()) {
$this->data'User']'password'] = AuthComponent::password($this->data'User']'password']);
return true;
}

Le problème est quand je fait un edit d'un user le mot de passe déja crypté se refait encrypter.

Comment éviter ce problème.

Je vous remercie

1 réponse


Pour cela tu met un champ vide password que tu retraites après.

Tu peux donc mettre a null ton champs password avant l'edition et modifier ton before save

if(isset($this->data'User']'password']))
$this->data'User']'password'] = AuthComponent::password($this->data'User']'password']);

return true;

Mais pour plus de securité :
tu met un champ password_old demandant le pass actuel et un autre champ password_new
tu test si password_old = password actuel
et ensuite tu enregistre ton nouveau password dans la base.