मेरे वाईआई आवेदन में, मैं चाहता हूं कि मेरे प्राधिकरण पदानुक्रम और व्यापार नियम कोड में लिखे जाएं और मैं अपने उपयोगकर्ताओं, भूमिकाओं और अनुमतियों को डेटाबेस में संग्रहीत करना चाहता हूं। यह मेरे व्यापार तर्क (जो कोड होना चाहिए) को उस जानकारी से अलग करता है जिसका उपयोग करना चाहिए (जो डेटा होना चाहिए)। ऐसा प्रतीत होता है कि वाईआई इसका समर्थन नहीं करता है।डेटाबेस में प्रमाणीकरण नियमों का कारण क्या है?
वाई में आपके पास या तो अपने व्यापार तर्क को फ़ाइलों (CPhpAuthManager) या डेटाबेस (CdbAuthManager) में डालने का विकल्प है। किसी भी तरह से, आप डेटा के रूप में अपने व्यापार तर्क का इलाज कर रहे हैं; वाईआई वास्तव में तारों के रूप में आपके व्यावसायिक तर्क को पुनर्प्राप्त करेगा और फिर इसे eval
के माध्यम से चलाएगा, जो ऐसा करने के लिए एक भयानक तरीका प्रतीत होता है।
इसका कारण क्या है?
मैं जो परिणाम चाहता हूं उसे कैसे प्राप्त कर सकता हूं?
क्या आप इसे बेहतर समझा सकते हैं? डेटाबेस में bizRules क्यों होना चाहिए, उन्हें अपने कोड में क्यों सेट नहीं करें? –
जैसा ऊपर बताया गया है ... आप अपने तर्क को PHP कोड में ले जा सकते हैं, उपरोक्त परिदृश्य बड़े पैमाने पर निर्दिष्ट भूमिकाओं (या कार्य या संचालन) के साथ उपयोग-केस का वर्णन करते हैं। यदि आप 'CanEditOwnPost' जैसे किसी आइटम को चेकएप() चेक करना चाहते हैं तो आपको यह जांचना होगा कि * वर्तमान * पोस्ट उपयोगकर्ता से संबंधित है या नहीं, यह 'स्थैतिक' प्रविष्टि के साथ नहीं किया जा सकता है। या तो PHP कोड में चेक करें और फिर आइटम असाइन करें ... या अपने डेटाबेस में एक बिज़रूल जोड़ें जो यह आपके लिए जांच करता है। – schmunk
यह अभी भी समझ में नहीं आता है क्योंकि डेटाबेस में कोड eval'd है। यह बेहतर होगा अगर यह नियंत्रक या कुछ में था। –