Смена пароля

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
nik.linetskiy
Сообщения: 48
Зарегистрирован: 2014.01.01, 21:08

Смена пароля

Сообщение nik.linetskiy »

При смене пароля необходимо вводить текущий пароль.
Подскажите пожалуйста, как его проверять в моделе?
nik.linetskiy
Сообщения: 48
Зарегистрирован: 2014.01.01, 21:08

Re: Смена пароля

Сообщение nik.linetskiy »

array('password', 'compare', 'compareValue'=>$this->findByPk(Yii::app()->user->id)->password, 'on'=>'changePassword'),
сделал так
nik.linetskiy
Сообщения: 48
Зарегистрирован: 2014.01.01, 21:08

Re: Смена пароля

Сообщение nik.linetskiy »

Вот проблема только в том, что пароль хранится в md5....
Как быть в таком случае? Как передать функции beforeValidate() значения, которые нужно отправить на валидацию
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Смена пароля

Сообщение SiZE »

сделай свое правило.
Joseph Jevelin
Сообщения: 339
Зарегистрирован: 2012.01.06, 22:07

Re: Смена пароля

Сообщение Joseph Jevelin »

Код: Выделить всё

public function rules()
{
    return array(
        array('password, newPassword, verifyNewPassword', 'required'),
        array('password', 'checkPassword'),
        array('verifyNewPassword', 'compare', 'compareAttribute' => 'newPassword'),
    );
}

public function checkPassword($attribute, $params)
{
    if(!$this->hasErrors())
    {
        $user = User::model()->findbyPk(Yii::app()->user->id);

        if(md5($this->password) !== $user->password)
            $this->addError('password', 'Wrong password.');
    }
}
Ответить