2010-02-02 13 views
5

में पासवर्ड प्रारूप को सत्यापित करना क्या पासवर्ड के प्रारूप को सत्यापित करने के लिए ऑथलॉगिक प्राप्त करने का कोई तरीका है, उदाहरण के लिए कम से कम एक अक्षर और कम से कम एक संख्या होनी चाहिए? acts_as_authentic कॉन्फ़िगरेशन ब्लॉक में validates_format_of_password_options विधि का उपयोग करने का तरीका इंगित करता है कि एथलॉगिक का मानना ​​है कि किसी को अपने उपयोगकर्ताओं पर ऐसी बाधा नहीं लगाई जानी चाहिए।Authlogic

मैंने सोचा कि मैं बस एक सामान्य ActiveRecord validates_format_of :password में डाल सकता है, लेकिन इसका मतलब है कि एक current_user वस्तु मैं निर्माण स्वाभाविक अमान्य है, जैसा कि मैंने प्लेन पासवर्ड प्राप्त नहीं कर सकता (और यहां तक ​​कि उस वस्तु में भंडारण नहीं किया जाएगा अगर मैं कर सकता!)। यह पता लगाने पर कि मेरा current_user अमान्य है, रेल या ऑथलॉगिक (यह सुनिश्चित नहीं है कि, क्योंकि मैं दोनों के लिए बिल्कुल नया हूं) मुझे अपने पासवर्ड के लिए सत्यापन त्रुटि के साथ 'मेरे उपयोगकर्ता को संपादित करें' पृष्ठ पर निर्देशित करता है।

उत्तर

2

आप कॉन्फ़िगरेशन विकल्प तो जैसे acts_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 

आप अपने में acts_as_authentic फ़ोल्डर के अंदर देख सकते हैं "(जवाहरात || प्लगइन्स)/authlogic/acts_as_authentic /" अधिक विकल्पों के लिए निर्देशिका। चीयर्स!

+1

मेरे पास पहले से ही मेरे config block में 'merge_validates_length_of_password_field_options' है और यह अपेक्षा के अनुसार काम करता है। मेरी समस्या यह है कि लॉग इन और ईमेल फ़ील्ड्स के लिए पासवर्ड फ़ील्ड के प्रारूप के लिए कोई भी विधि मौजूद नहीं है। – hynkle

+0

आप हमेशा इसे बंद कर सकते हैं। :-) – westoque

+0

बस इसे बहुत छोटा लगा! अच्छी तरह से काम। – hynkle

7

के लिए कोई बंदर-पैचिंग की आवश्यकता नहीं है, लेकिन किसी भी भविष्य में एथलॉगिक परिवर्तनों से बंधे नहीं हैं।

validates_format_of: पासवर्ड,: बस अपने उपयोगकर्ता मॉडल में जोड़ने के साथ =>/^ (?। = \ घ) (?। = ([az] | [AZ])) ([\ x20- \ x7E]) {6,40} $ /,: if =>: require_password ?,: message => "एक संख्या, एक अक्षर शामिल होना चाहिए और 6 और 40 अक्षरों के बीच होना चाहिए"

बेशक आप इसे बदल सकते हैं अपनी आवश्यकताओं को सुइट करने के लिए regex।

+0

मेरे लिए पूरी तरह से काम किया! – dalyons

+1

असल में, मुझे इसे थोड़ा बदलना पड़ा: '/^(?=.*\d)(?=.*([az]|[AZ]))([\x20-\x7E]){6, } $/' – dalyons

संबंधित मुद्दे