यहाँ रूसी से हिंदी में अनुवादित प्रोग्रामिंग कार्य पाठ है: इंटरफेस के साथ बहु-स्तरीय पहुँच जाँच प्रणाली
Go
Hard
interfaces
कार्य «यहाँ रूसी से हिंदी में अनुवादित प्रोग्रामिंग कार्य पाठ है: इंटरफेस के साथ बहु-स्तरीय पहुँच जाँच प्रणाली»
```html
<h3>कार्य विवरण</h3>
<p>इंटरफ़ेस का उपयोग करके संसाधनों तक पहुँच जाँच प्रणाली लागू करें। <code>AccessChecker</code> इंटरफ़ेस को <code>CheckAccess(resource string, user string) bool</code> और <code>GetPermissions(resource string) []string</code> विधियों के साथ परिभाषित करें। तीन संरचनाएँ लागू करें:</p>
<ul>
<li><strong>AdminAccess</strong> (हमेशा <code>true</code> लौटाता है और सभी अनुमतियों की सूची जिसमें 'admin' शामिल है)</li>
<li><strong>UserAccess</strong> (संसाधन के लिए अनुमत उपयोगकर्ताओं की सूची में उपयोगकर्ता की उपस्थिति की जाँच करता है और 'user_' से शुरू होने वाली अनुमतियाँ लौटाता है)</li>
<li><strong>GuestAccess</strong> (जाँचता है कि संसाधन सार्वजनिक रूप से उपलब्ध संसाधनों की सूची में है या नहीं, और यदि उपलब्ध है तो 'read' अनुमति लौटाता है)</li>
</ul>
<p>इसके बाद, <code>CreateAccessChecker(accessType string, config map[string]interface{}) (AccessChecker, error)</code> फ़ंक्शन लागू करें, जो <code>accessType</code> स्ट्रिंग ('admin', 'user', 'guest') और कॉन्फ़िगरेशन के आधार पर संबंधित ऑब्जेक्ट बनाता है।</p>
<h4>इनपुट:</h4>
<p>पहले एक पूर्णांक N (1..100) — अनुरोधों की संख्या। फिर N पंक्तियाँ प्रारूप में: <code>accessType resource user</code>। इसके बाद कॉन्फ़िगरेशन वाली एक पंक्ति:</p>
<ul>
<li><strong>admin</strong> के लिए — खाली स्ट्रिंग</li>
<li><strong>user</strong> के लिए — स्ट्रिंग प्रारूप 'resource1:user1,user2;resource2:user3'</li>
<li><strong>guest</strong> के लिए — स्ट्रिंग प्रारूप 'resource1;resource2'</li>
</ul>
<h4>आउटपुट:</h4>
<p>प्रत्येक अनुरोध के लिए 'allowed' या 'denied' प्रिंट करें। यदि <code>accessType</code> अज्ञात है, तो 'unknown type' प्रिंट करें।</p>
```
<h3>कार्य विवरण</h3>
<p>इंटरफ़ेस का उपयोग करके संसाधनों तक पहुँच जाँच प्रणाली लागू करें। <code>AccessChecker</code> इंटरफ़ेस को <code>CheckAccess(resource string, user string) bool</code> और <code>GetPermissions(resource string) []string</code> विधियों के साथ परिभाषित करें। तीन संरचनाएँ लागू करें:</p>
<ul>
<li><strong>AdminAccess</strong> (हमेशा <code>true</code> लौटाता है और सभी अनुमतियों की सूची जिसमें 'admin' शामिल है)</li>
<li><strong>UserAccess</strong> (संसाधन के लिए अनुमत उपयोगकर्ताओं की सूची में उपयोगकर्ता की उपस्थिति की जाँच करता है और 'user_' से शुरू होने वाली अनुमतियाँ लौटाता है)</li>
<li><strong>GuestAccess</strong> (जाँचता है कि संसाधन सार्वजनिक रूप से उपलब्ध संसाधनों की सूची में है या नहीं, और यदि उपलब्ध है तो 'read' अनुमति लौटाता है)</li>
</ul>
<p>इसके बाद, <code>CreateAccessChecker(accessType string, config map[string]interface{}) (AccessChecker, error)</code> फ़ंक्शन लागू करें, जो <code>accessType</code> स्ट्रिंग ('admin', 'user', 'guest') और कॉन्फ़िगरेशन के आधार पर संबंधित ऑब्जेक्ट बनाता है।</p>
<h4>इनपुट:</h4>
<p>पहले एक पूर्णांक N (1..100) — अनुरोधों की संख्या। फिर N पंक्तियाँ प्रारूप में: <code>accessType resource user</code>। इसके बाद कॉन्फ़िगरेशन वाली एक पंक्ति:</p>
<ul>
<li><strong>admin</strong> के लिए — खाली स्ट्रिंग</li>
<li><strong>user</strong> के लिए — स्ट्रिंग प्रारूप 'resource1:user1,user2;resource2:user3'</li>
<li><strong>guest</strong> के लिए — स्ट्रिंग प्रारूप 'resource1;resource2'</li>
</ul>
<h4>आउटपुट:</h4>
<p>प्रत्येक अनुरोध के लिए 'allowed' या 'denied' प्रिंट करें। यदि <code>accessType</code> अज्ञात है, तो 'unknown type' प्रिंट करें।</p>
```
इनपुट प्रारूप
```html
N (पूर्णांक)
N पंक्तियाँ: accessType resource user
कॉन्फ़िगरेशन स्ट्रिंग
```
आउटपुट प्रारूप
N पंक्तियाँ: 'allowed' या 'denied' या 'unknown type'
उदाहरण
उदाहरण 1
इनपुट
3
admin secret admin
user docs alice
guest public bob
आउटपुट
allowed
denied
denied
उदाहरण 2
इनपुट
2
admin vault eve
user reports john
resource1:alice,bob;resource2:charlie
आउटपुट
allowed
denied
उदाहरण 3
इनपुट
1 2 3 4 5
6 7 8 9 10
आउटपुट
unknown type
उदाहरण 4
इनपुट
1
superuser root root
आउटपुट
unknown type
उदाहरण 5
इनपुट
-1 2 3 -4 5
6 -7 8 -9 10
आउटपुट
unknown type
main.go