Изменить минимальную длину пароля с restful_authentication - PullRequest
0 голосов
/ 20 апреля 2010

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

Я пытался вызвать validates_length_of до и после Authentication :: 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.

Ответы [ 2 ]

0 голосов
/ 20 апреля 2010

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 не имеет этих параметров конфигурации. Решение right состоит в том, чтобы разветвить проект 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
0 голосов
/ 20 апреля 2010

Зайдите в vendor / plugins / restful-authentication / lib / authentication / by_password.rb и отредактируйте эту строку

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