CakePHP AuthComponent хэширование пустой строки вызывает проблему проверки notEmpty - PullRequest
1 голос
/ 27 января 2011

У меня есть notEmpty правило проверки, установленное для моего поля пароля. Проблема в том, что AuthComponent автоматически хеширует строку. Поэтому, если пароль пуст, он перед проверкой превратится в хеш, поэтому при хешировании он будет выглядеть не пустым, а действительный пароль в виде простого текста пуст.

Лучшее решение, которое я могу придумать, - сделать так, чтобы AuthComponent не хешировал пустую строку. Может кто-нибудь сказать мне, как это сделать? или лучшее решение?

1 Ответ

2 голосов
/ 27 января 2011

Идея: вы можете сбросить пароль в методе обратного вызова beforeValidate вашей модели пользователя, например:

public function beforeValidate() {
    App::import('Core', 'Security'); // not sure whether this is necessary
    if ($this->data['User']['password'] == Security::hash('', null, true)) {
        $this->data['User']['password'] = '';
    }
    return true;
}
...