2010-05-14 6 views
3

Я разрабатываю новое приложение с использованием Symfony. Я хочу, чтобы хранить пароли хэш-, поэтому я overridded метод сохранения в моей модели пользователя:Реализация хэша паролей

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

Это хорошо работает, когда создается новый пользователь. Однако это вызывает проблемы при редактировании пользователя без изменения его пароля. Это заставляет Doctrine хешировать уже хэшированный пароль.

Итак, мне нужно проверить, изменяется ли UserPassword в экземпляре DoctrineRecord. Как я могу это сделать?

ответ

8

Решение: Нам необходимо переопределить метод установки только:

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

Блин, 3-й вопрос я смотрю, где О.П. ответил себя перед кем-либо. Думаю, что скоро умрет, люди стали слишком умными! –

Смежные вопросы