2010-05-14 5 views
3

Je développe une nouvelle application en utilisant Symfony. Je veux stocker les mots de passe hachés, donc j'overridded la méthode de sauvegarde dans mon modèle d'utilisateur:Mise en œuvre de hachage de mot de passe

public function save(Doctrine_Connection $conn = null) 
{ 
    $this->setUserPassword(md5($this->getUserPassword())); 
return parent::save($conn); 
} 

Cela fonctionne bien quand un nouvel utilisateur créé. Cependant, cela provoque des problèmes lorsque nous modifions un utilisateur sans changer son mot de passe. Cela oblige Doctrine à hacher le mot de passe déjà hashé. Donc, j'ai besoin de vérifier si le UserPassword est modifié dans cette instance de DoctrineRecord. Comment puis-je réussir à faire cela?

Répondre

8

Solution: Nous devons passer outre la méthode setter seulement:

public function setUserPassword($password) 
{ 
    return $this->_set('user_password', md5($password)); 
} 
+0

Bon sang, 3ème question que je regarde où l'OP lui-même répondu avant que quiconque. Je suppose que ça va bientôt mourir, les gens sont devenus trop intelligents! –

Questions connexes