2010-04-20 3 views
0

Есть ли способ изменить минимальную длину паролей с помощью restful_authentication? В настоящее время это 6 символов, и мне нужно другое значение.Изменение минимальной длины пароля с помощью restful_authentication

Я пытался дозвониться validates_length_of до и после аутентификации :: ByPassword как этот

validates_length_of :password, :within => 4..40, :if => :password_required? 
include Authentication::ByPassword 

и так:

include Authentication::ByPassword 
validates_length_of :password, :within => 4..40, :if => :password_required? 

но минимальный срок действия пароля остался на 6.

ответ

0

идти поставщику/плагинам/restful-authentication/lib/authentication/by_password.rb и отредактируйте эту строку

validates_length_of :password, :within => 6..40, :if => :password_required? 
+2

А затем подключить обновляется и изломы веб приложение без видимой причины. – Pablo

+0

Что именно вы написали? потому что я только что попробовал, и это отлично работает – fl00r

+1

Что я пробовал на вопрос. Не уверен, что вы имеете в виду. Я хочу сказать, что если вы изменяете сторонний код, не отправляя вверх и/или не создавая ветку и не используя ее, вы рискуете обновить этот код и потерять свои модификации, и это может быть очень сложно отслеживать и отлаживать. – Pablo

0

ActsAsAuthentic имеет опции конфигурации, как так:

acts_as_authentic do |config| 
    config.merge_validates_length_of_password_field_options  :within => 4..40 
    config.merge_validates_confirmation_of_password_field_options :within => 4..40 
end 

К сожалению, RestfulAuthentication не имеют эти параметры конфигурации. Решение правое решение было бы разветвить проект RestfulAuthentication и добавить их.

В то же время, вы могли бы обезьяна патч Authentication::ByPassword.included:

# in app/models/user.rb: 
Authentication::ByPassword.class_eval do 
    def self.included(base) 
    recipient.extend(ModelClassMethods) 
    recipient.class_eval do 
     include ModelInstanceMethods 

     # Virtual attribute for the unencrypted password 
     attr_accessor :password 
     validates_presence_of :password, :if => :password_required? 
     validates_presence_of :password_confirmation, :if => :password_required? 
     validates_confirmation_of :password, :if => :password_required? 
     validates_length_of :password, :within => 4..40, :if => :password_required? 
     before_save :encrypt_password 
    end 
    end 
end 
Смежные вопросы