2012-05-08 13 views
8

मैं जनादेश के लिए कि सभी उपयोगकर्ताओं सेवा की शर्तें स्वीकार करना चाहते हैं, बहुत पसंद है यहाँ वर्णित है:डेविस, उपयोगकर्ता को सेवा की शर्तों को स्वीकार करने की आवश्यकता है?

Ruby on Rails/Devise - Bypassing custom validation option in model when resetting password

लेकिन वहाँ है कि ऊपर दृष्टिकोण फिट नहीं कर 2 आवश्यकताएँ हैं।

1) उपयोगकर्ता स्वयं पंजीकृत नहीं हैं, बल्कि वे सिस्टम प्रशासक द्वारा बनाए जाते हैं। व्यवस्थापक स्पष्ट रूप से उपयोगकर्ताओं की ओर से नियम और शर्तों को स्वीकार नहीं कर सकता है। उपयोगकर्ता को अपने पहले लॉगिन पर नियम और शर्तों को स्वीकार करने के लिए कहा जाना चाहिए।

2) यदि तथ्य के बाद नियम और शर्तें बदलती हैं। उपयोगकर्ताओं को बाद के लॉगिन पर नए नियमों को फिर से स्वीकार करने की आवश्यकता है।

ये सुंदर मानक वर्कफ़्लो की तरह लगते हैं। क्या यह पूरा करने के लिए कोई रास्ता प्रदान करता है?

यदि नहीं, तो मुझे लगता है कि इस चेक को मेरे एप्लिकेशन नियंत्रक पर पहले_फिल्टर में लागू करने की आवश्यकता होगी। (एप्लिकेशन तर्क के साथ गंदे मिश्रण प्रमाणीकरण महसूस करता है ...)

क्या मुझे इसका सहारा लेना होगा या क्या कोई बेहतर तरीका सुझा सकता है?

धन्यवाद

+2

मुझे लगता है कि devise/auth के पास व्यावसायिक तर्क (शर्तों) से कोई लेना देना नहीं है। आपको एप्लिकेशन नियंत्रक में फ़िल्टर से पहले एक करना होगा। आप व्यापार तर्क के साथ लेखांकन नहीं कर रहे हैं। उपयोगकर्ता प्रमाणीकृत है लेकिन यह किसी भी पृष्ठ तक नहीं पहुंच सकता है जब तक कि यह उपयोग की शर्तों को स्वीकार नहीं करेगा – bcd

उत्तर

0

आप सैद्धांतिक रूप से सिर्फ JQuery का उपयोग कर अपने अनुप्रयोग में आगे बढ़ रहा है अक्षम नहीं कर सकता है?

अपना फॉर्म "जारी रखें" या "लॉग इन करें" बटन अक्षम करें जब तक कि उन्होंने कोई बॉक्स चेक नहीं किया हो या जारी रखें बटन दबाएं, फिर उनके लॉग इन बटन को एक बार सक्षम करें।

यदि आपको उस जानकारी को स्टोर करने की आवश्यकता है तो उपयोगकर्ता को अपने डेटाबेस में एक कॉलम बनाएं जो बॉक्स को चेक करते समय या जारी रखें बटन दबाए जाने पर भी पोस्ट हो जाता है, या आप लॉग इन संख्याओं को एक तरह से उपयोग कर सकते हैं जानने का

यदि user.logs> 0 तो उपयोगकर्ता पहले ही शर्तों को स्वीकार कर चुका है।
यदि user.logs == 0 तो उपयोगकर्ता को लॉग इन करने से पहले शर्तों को स्वीकार करने की आवश्यकता है।

मुझे लगता है कि आपके प्रश्न के मुताबिक ऐसा लगता है कि डेविस में सबकुछ बांधना बहुत जटिल लगता है।

उम्मीद है कि इससे मदद मिलती है।

2

यह कुछ काम नहीं करेगा और इसे तैयार नहीं करना चाहिए क्योंकि एक TOS प्रमाणीकरण से संबंधित नहीं है।

आप क्या कर सकते हैं एक राज्य मशीन को लागू करने की तरह कुछ है लेकिन यह आपकी आवश्यकता से अधिक जटिल हो सकता है।

सरल तरीका आपके उपयोगकर्ता मॉडल में स्वीकृत_टॉस बूलियन फ़ील्ड जोड़ना होगा और इसे पहले_फिल्टर में जोड़ना होगा, फिर आप TOS को अद्यतन होने पर स्वीकृत_टोस को गलत पर सेट कर देंगे।

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