0
Я пытаюсь сделать простую функцию сброса пароля, которая позволяет администратору изменять пароль пользователя и отправлять им новый пароль. Все работает, за исключением того, что пароль никогда не изменяется в базе данных. Я нашел много информации об этой теме, но ничего не сработало. Почему пароль не изменяется? Я использую CakePHP 2.1Сменить пароль в cakephp 2x
Я попытался это:
public function auto_reset_password($id = null){
$this->User->id = $id;
$randomPass= $this->User->generatePassword();
$randomPassHashed= $this->Auth->password($randomPass);
$this->User->set('password', $randomPassHashed);
$this->User->save();
//email code....
}
и подставляя:
$u = $this->User->find('first', array(
'conditions' => array('User.id' => $id)
));
//.....
$u['User']['password'] = $randomPassHashed;
Мой пользователь модальный имеет этот BeforeSave:
public function beforeSave() {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}
Старайтесь избегать его хэширования дважды (что вы делаете здесь с помощью ручного хэш-вызова и через обратный вызов beforeSave()). Это также может помочь: [Работа с паролями в CakePHP] (http://www.dereuromark.de/2011/08/25/working-with-passwords-in-cakephp/) – mark
Добавьте UserModel, чтобы мы могли принять взгляд. –
Я избавился от первого хеша пароля и установил пароль с неуправляемым значением, но ничего не изменилось ... Что вы ищете в пользовательской модели? Я не могу найти какой-либо другой код, относящийся к этому в этом файле. Функция генерации пароля определенно работает. – Cbas