में रिक्त पासवर्ड की बल सत्यापन, मैं अपने रेल एप्लिकेशन में पासवर्ड रीसेट सुविधा जोड़ रहा हूं जो Authlogic का उपयोग करता है। मैं यहां गाइड का अनुसरण कर रहा था: http://www.binarylogic.com/2008/11/16/tutorial-reset-passwords-with-authlogic/ और सबकुछ काम करता है जैसा कि मैं एक चीज़ को छोड़कर चाहता हूं: पासवर्ड रीसेट फॉर्म रिक्त पासवर्ड स्वीकार करता है और बस उन्हें नहीं बदलता है।Authlogic
मैं चारों ओर खोज कर रहा हूं, और यह सीखा है कि यह एकमात्र डिफ़ॉल्ट व्यवहार है क्योंकि यह आपको उपयोगकर्ता संपादन फ़ॉर्म बनाने की अनुमति देता है जो उपयोगकर्ता के पासवर्ड को केवल एक नया दर्ज करते हैं, और अन्यथा अनदेखा करते हैं। लेकिन इस मामले में, मैं विशेष रूप से पासवर्ड की सत्यापन को लागू करना चाहता हूं जैसे उपयोगकर्ता प्रारंभ में पंजीकरण करता है। मुझे इस समस्या के लिए दो संभावित समाधान मिल गए हैं लेकिन उनमें से किसी एक को कार्यान्वित करने का तरीका पता नहीं लगा है।
1) किसी ने Google समूह पर यह एक ही प्रश्न पूछा:
User model saves with blank password
बेन की प्रतिक्रिया @user.validate_password = true
उपयोग करने के लिए पासवर्ड के सत्यापन के लिए मजबूर किया गया था। मैंने कोशिश की लेकिन मुझे एक अपरिभाषित विधि त्रुटि मिली: undefined method 'validate_password_field=' for #<User>
।
2) ignore_blank_passwords
नामक एक औथ्लोगिक कॉन्फ़िगरेशन विकल्प प्रतीत होता है। यह यहाँ प्रलेखित है:
Module: Authlogic::ActsAsAuthentic::Password::Config#ignore_blank_passwords
यह लगता है कि यह काम करेगा, लेकिन मैं समझता हूँ कि यह एक वैश्विक विन्यास विकल्प है कि आप उपयोगकर्ता मॉडल में अपने प्रारंभिक acts_as_authentic
कॉल में उपयोग है, और मुझे नहीं पता इसे एप्लिकेशन-व्यापी में बदलना चाहते हैं, क्योंकि मेरे पास उन उपयोगकर्ताओं के लिए एक नियमित संपादन फ़ॉर्म है जहां मैं डिफ़ॉल्ट रूप से रिक्त पासवर्ड को अनदेखा करना चाहता हूं।
किसी को भी इसका समाधान मिला? मैं validate_password=
को एथलॉगिक 1.4.1 के परिवर्तन लॉग में देखता हूं और तब से इसके बारे में कुछ भी नहीं हटाया गया है। क्या मैं बस इसे गलत तरीके से उपयोग कर रहा हूं? क्या प्रति अनुरोध आधार पर ignore_blank_passwords
का उपयोग करने का कोई तरीका है?
मैं 'ignore_blank_paswords' विशेषता का उपयोग करने में सक्षम था। विवरण के लिए मेरा जवाब देखें। –