0 votes

Changer la longueur minimale du mot de passe avec restful_authentication

Existe-t-il un moyen de changer la longueur minimale des mots de passe avec restful_authentication? Actuellement, c'est 6 caractères et j'ai besoin d'une autre valeur.

J'ai essayé d'appeler validates_length_of avant et après Authentication::ByPassword comme ceci

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

et comme ceci:

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

mais le mot de passe minimum est resté à 6.

0voto

fl00r Points 41855

Aller à vendor/plugins/restful-authentication/lib/authentication/by_password.rb et éditer cette chaîne

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

0voto

James A. Rosen Points 25774

ActsAsAuthentic a des options de configuration comme suit:

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

Malheureusement, RestfulAuthentication n'a pas ces options de configuration. La bonne solution serait de forker le projet RestfulAuthentication et de les ajouter.

En attendant, vous pouvez patcher 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X