2010-04-20 5 views
0

Existe-t-il un moyen de modifier la longueur minimale des mots de passe avec restful_authentication? Actuellement, il y a 6 caractères et j'ai besoin d'une autre valeur.Modifier la longueur minimale du mot de passe avec restful_authentication

J'ai essayé d'appeler validates_length_of avant et après l'authentification de l'ByPassword comme celui-ci

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.

Répondre

0

go au fournisseur/plugins/restful-authentification/lib/authentication/by_password.rb et éditez cette chaîne

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

Et puis la fiche dans est mis à jour et les pauses d'applications Web sans raison apparente. – Pablo

+0

Qu'avez-vous écrit exactement? Parce que je viens de l'essayer et c'est le travail parfait – fl00r

+1

Ce que j'ai essayé est sur la question. Je ne sais pas ce que vous voulez dire au-delà de ça. Mon point est que si vous modifiez le code d'un tiers sans envoyer de flux en amont et/ou créer une branche et l'utiliser, vous risquez de mettre à jour ce code et de perdre vos modifications, ce qui peut être très difficile à suivre. – Pablo

0

ActsAsAuthentic a des options de configuration comme ceci:

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 

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

Dans le même temps, vous pourriez singe-patch 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 
Questions connexes