यह दस्तावेज़ AI द्वारा अनुवादित किया गया है। किसी भी अशुद्धि के लिए, कृपया अंग्रेजी संस्करण देखें
ACL (एक्सेस कंट्रोल लिस्ट) का उपयोग संसाधन संचालन अनुमतियों को नियंत्रित करने के लिए किया जाता है। आप भूमिकाओं को अनुमतियाँ दे सकते हैं, या भूमिका प्रतिबंधों को छोड़कर सीधे अनुमतियों को नियंत्रित कर सकते हैं। ACL सिस्टम एक लचीला अनुमति प्रबंधन तंत्र प्रदान करता है, जो अनुमति स्निपेट, मिडलवेयर, शर्त-आधारित निर्णय और अन्य कई तरीकों का समर्थन करता है।
ACL ऑब्जेक्ट्स डेटा स्रोत (dataSource.acl) से संबंधित होते हैं। मुख्य डेटा स्रोत के ACL को app.acl के माध्यम से तुरंत एक्सेस किया जा सकता है। अन्य डेटा स्रोतों के ACL के उपयोग के लिए, कृपया डेटा स्रोत प्रबंधन अध्याय देखें।
अनुमति स्निपेट (Snippet) आमतौर पर उपयोग किए जाने वाले अनुमति संयोजनों को पुन: प्रयोज्य अनुमति इकाइयों के रूप में रजिस्टर कर सकते हैं। किसी भूमिका को स्निपेट से जोड़ने के बाद, उसे अनुमतियों का संबंधित सेट प्राप्त हो जाता है, जिससे दोहराव वाली कॉन्फ़िगरेशन कम होती है और अनुमति प्रबंधन की दक्षता बढ़ती है।
acl.allow() का उपयोग कुछ परिचालनों को भूमिका प्रतिबंधों को बाईपास करने की अनुमति देने के लिए किया जाता है। यह सार्वजनिक API, गतिशील अनुमति मूल्यांकन की आवश्यकता वाले परिदृश्यों, या उन मामलों के लिए उपयुक्त है जहाँ अनुमति का निर्णय अनुरोध संदर्भ के आधार पर करने की आवश्यकता होती है।
condition पैरामीटर का विवरण:
'public' : कोई भी उपयोगकर्ता (लॉग-इन न किए गए उपयोगकर्ताओं सहित) बिना किसी प्रमाणीकरण के पहुँच सकता है।'loggedIn' : केवल लॉग-इन किए गए उपयोगकर्ता ही पहुँच सकते हैं, इसके लिए वैध उपयोगकर्ता पहचान की आवश्यकता होती है।(ctx) => Promise<boolean> या (ctx) => boolean : कस्टम फ़ंक्शन जो अनुरोध संदर्भ के आधार पर गतिशील रूप से निर्धारित करता है कि पहुँच की अनुमति है या नहीं, यह जटिल अनुमति तर्क को लागू कर सकता है।acl.use() का उपयोग कस्टम अनुमति मिडलवेयर रजिस्टर करने के लिए किया जाता है, जिससे अनुमति जाँच प्रक्रिया में कस्टम तर्क डाला जा सके। यह आमतौर पर ctx.permission के साथ मिलकर कस्टम अनुमति नियमों के लिए उपयोग किया जाता है। यह उन परिदृश्यों के लिए उपयुक्त है जहाँ अपरंपरागत अनुमति नियंत्रण की आवश्यकता होती है, जैसे सार्वजनिक फ़ॉर्म को कस्टम पासवर्ड सत्यापन की आवश्यकता होती है, या अनुरोध पैरामीटर के आधार पर गतिशील अनुमति निर्णय।
विशिष्ट अनुप्रयोग परिदृश्य:
ctx.permission के माध्यम से अनुमतियों को नियंत्रित करें:
ctx.permission प्रॉपर्टी का विवरण:
skip: true : बाद की ACL अनुमति जाँचों को छोड़ें और सीधे पहुँच की अनुमति दें।addFixedParams कुछ संसाधन परिचालनों के लिए निश्चित डेटा स्कोप (फ़िल्टर) बाधाएँ जोड़ सकता है। ये बाधाएँ भूमिका प्रतिबंधों को बाईपास करती हैं और सीधे लागू होती हैं, आमतौर पर महत्वपूर्ण सिस्टम डेटा की सुरक्षा के लिए उपयोग की जाती हैं।
टिप:
addFixedParamsका उपयोग संवेदनशील डेटा को गलती से हटाने या संशोधित होने से रोकने के लिए किया जा सकता है, जैसे सिस्टम में निर्मित भूमिकाएँ, व्यवस्थापक खाते आदि। ये बाधाएँ भूमिका अनुमतियों के साथ मिलकर प्रभावी होती हैं, यह सुनिश्चित करती हैं कि अनुमतियाँ होने पर भी संरक्षित डेटा को हेरफेर नहीं किया जा सकता है।
acl.can() का उपयोग यह जाँचने के लिए किया जाता है कि किसी भूमिका के पास निर्दिष्ट संचालन को निष्पादित करने की अनुमति है या नहीं, यह एक अनुमति परिणाम ऑब्जेक्ट या null लौटाता है। इसका उपयोग आमतौर पर व्यावसायिक तर्क में गतिशील रूप से अनुमतियों की जाँच करने के लिए किया जाता है, जैसे मिडलवेयर या संचालन के हैंडलर में भूमिकाओं के आधार पर यह तय करना कि कुछ परिचालनों को निष्पादित करने की अनुमति है या नहीं।
टिप: यदि कई भूमिकाएँ पास की जाती हैं, तो प्रत्येक भूमिका को क्रमिक रूप से जाँच की जाएगी, और अनुमति वाली पहली भूमिका का परिणाम लौटाया जाएगा।
प्रकार परिभाषाएँ:
यदि आप चाहते हैं कि कस्टम संचालन को इंटरफ़ेस पर अनुमतियाँ कॉन्फ़िगर करने योग्य बनाया जा सके (जैसे भूमिका प्रबंधन पृष्ठ में प्रदर्शित करना), तो आपको उन्हें setAvailableAction का उपयोग करके रजिस्टर करना होगा। पंजीकृत संचालन अनुमति कॉन्फ़िगरेशन इंटरफ़ेस में दिखाई देंगे, जहाँ व्यवस्थापक विभिन्न भूमिकाओं के लिए संचालन अनुमतियाँ कॉन्फ़िगर कर सकते हैं।
पैरामीटर का विवरण:
{{t("key")}} प्रारूप का उपयोग करके)।'new-data' : नया डेटा बनाने वाले संचालन (जैसे आयात, जोड़ना आदि)।'existing-data' : मौजूदा डेटा को संशोधित करने वाले संचालन (जैसे अपडेट, हटाना आदि)।'new-data' प्रकार के लिए वैध है।पंजीकरण के बाद, यह संचालन अनुमति कॉन्फ़िगरेशन इंटरफ़ेस में दिखाई देगा, जहाँ व्यवस्थापक भूमिका प्रबंधन पृष्ठ में इस संचालन की अनुमतियाँ कॉन्फ़िगर कर सकते हैं।