проверка формата пароля в Authlogic - PullRequest
6 голосов
/ 02 февраля 2010

Есть ли способ заставить Authlogic проверить формат пароля, например, должен содержать хотя бы одну букву и хотя бы одну цифру?Пропуск метода validates_format_of_password_options, который будет использоваться в блоке конфигурации acts_as_authentic, по-видимому, указывает на то, что Authlogic считает, что не следует навязывать такое ограничение своим пользователям.

Я думал, что простовставьте обычный ActiveRecord validates_format_of :password, но это означает, что созданный мной объект current_user недопустим, поскольку я не могу получить пароль в виде открытого текста (и не буду хранить его в этом объекте, даже если смогу!),Обнаружив, что мой current_user недействителен, Rails или Authlogic (не уверен, который, так как я довольно новичок в обоих случаях) направляет меня на страницу «Редактировать пользователя» с ошибкой проверки его пароля.

Ответы [ 2 ]

7 голосов
/ 06 марта 2010

не требует исправлений обезьяны, но не привязан к каким-либо будущим изменениям Authlogic.Просто добавьте это в модель своего пользователя:

validates_format_of: пароль, с) ([\ x20- \ x7E]) {6,40} $ /,: if =>: require_password ?,: message => "должен содержать одну цифру, одну букву и содержать от 6 до 40 символов"

Конечно, вы можете изменить регулярное выражение в соответствии со своими потребностями.

3 голосов
/ 02 февраля 2010

Вы можете использовать параметры конфигурации, заданные Act_as_authentic, например:

    # Configuration is easy:
    #
    #   acts_as_authentic do |c|
    #     c.my_configuration_option = my_value
    #   end
    #
    # See the various sub modules for the configuration they provide.

Если вы перейдете к модулям в геме, вы увидите дополнительные опции, которые они предоставляют.Например, если я хочу изменить параметры по умолчанию для проверки длины пароля:

acts_as_authentic do |c|
 c.merge_validates_length_of_password_field_options({:minimum => 3})
end

Вы можете заглянуть в папку activ_as_authentic в вашей папке "(gems ​​|| plugins) / authlogic / acts_as_authentic /" для получения дополнительнойопции.Ура!

...