ServiceUserRole

अंतिम अपडेट: 3 जुलाई 2026

ServiceUserRole उस end-user को दी जाने वाली अनुमतियों का समूह है जो उत्पाद में साइन अप करता है, यानी ServiceUser को। यह एक ही रिसोर्स में रखता है कि Content Type, Content और Media पर क्या किया जा सकता है (पढ़ना, बनाना, संपादित करना, हटाना, प्रकाशित करना), और साथ ही ऐसे फ़िल्टर भी जो दायरे को सीमित करते हैं, जैसे केवल कुछ Content Type तक या केवल अपने बनाए हुए तक। यह अनुमति उस ACMA/ACDA पर लागू होती है जिसे ServiceUser कॉल करता है।

इसका स्थान SpaceRole से अलग है। SpaceRole, Weegloo User (कंटेंट स्टूडियो उपयोगकर्ता) की अनुमतियों का समूह है और CMA/CDA पर लागू होता है, जबकि ServiceUserRole, उत्पाद में साइन अप करने वाले ServiceUser की अनुमतियों का समूह है और ACMA/ACDA पर लागू होता है। बनाया गया ServiceUserRole अपने आप में किसी पर लागू नहीं होता। इसे ServiceLogin की डिफ़ॉल्ट भूमिका (defaultRole) में निर्दिष्ट करके, या ServiceUser के roleOverride में बाँधकर दिया जाता है।

रिसोर्स संरचना

नीचे ServiceUserRole "खरीदार" की एकल-अनुरोध प्रतिक्रिया है। sys (सिस्टम गुण) के साथ-साथ, यह अनुमति तय करने वाले मुख्य गुण contentType, content और media रखता है।

{
  "sys": {
    "id": "3trmXRLXeZN2RTHvVj3hFDN5546vbp",
    "type": "ServiceUserRole",
    "space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
    "createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "createdAt": "2026-06-18T12:40:36.944Z",
    "updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
    "updatedAt": "2026-06-18T12:40:36.944Z",
    "version": 1
  },
  "name": "खरीदार",
  "description": "ऐसा सदस्य जो प्रकाशित उत्पाद पढ़ सकता है",
  "contentType": { "All": { "Allow": [] } },
  "content": {
    "Read": {
      "Allow": [
        { "contentType": { "sys": { "id": "3trmXRLdJF4GBlAjtcuoZ7Pnxj8dlA", "type": "Refer", "targetType": "ContentType" } } }
      ]
    }
  },
  "media": { "All": { "Allow": [] } }
}

मुख्य कुंजियाँ:

  • contentType: Content Type स्वयं (स्कीमा) पर अनुमति मानचित्र है। Content Type को पढ़ने, बनाने, बदलने, हटाने और प्रकाशित करने की अनुमति हर क्रिया के लिए अलग-अलग तय करता है।
  • content: Content (कंटेंट डेटा) पर अनुमति मानचित्र है। ऊपर का उदाहरण केवल किसी विशिष्ट Content Type के Content को पढ़ने तक सीमित किया हुआ रूप दिखाता है।
  • media: Media (फ़ाइल, छवि) पर अनुमति मानचित्र है।

SpaceRole के विपरीत, ServiceUserRole में Space सेटिंग्स तक पहुँच रखने वाला settings नहीं होता। इसका कारण यह है कि ServiceUser, Space सेटिंग्स को नहीं संभालता। साथ ही, यह दर्शाने वाला sys.isLocked भी नहीं होता कि यह डिफ़ॉल्ट रूप से प्रदान किया गया है या नहीं।

सिस्टम गुण (sys)

हर ServiceUserRole समान सिस्टम गुणों को sys ऑब्जेक्ट में रखता है। space, createdBy, updatedBy, Refer रूप ({ "sys": { "id", "type": "Refer", "targetType" } }) में आते हैं।

गुणप्रकारविवरण
idstringरिसोर्स का अद्वितीय पहचानकर्ता।
typestringरिसोर्स का प्रकार। ServiceUserRole के लिए हमेशा "ServiceUserRole"
spaceRefer<Space>वह Space जिसमें यह ServiceUserRole है।
createdByRefer<User>बनाने वाला उपयोगकर्ता।
createdAtstring (date-time)बनाए जाने का समय।
updatedByRefer<User>अंतिम बार संशोधित करने वाला उपयोगकर्ता।
updatedAtstring (date-time)अंतिम संशोधन का समय।
versioninteger (≥1)रिसोर्स का संस्करण। हर संशोधन पर 1 बढ़ता है।

ServiceUserRole एक सेटिंग रिसोर्स है जिसमें प्रकाशन की कोई अवधारणा नहीं होती। इसलिए Content और Media के विपरीत, इसके sys में publish, archive, status नहीं होते, केवल version होता है। version, ServiceUserRole के हर संशोधन पर बढ़ता है। SpaceRole के विपरीत, sys.isLocked भी नहीं होता।

अनुमति मानचित्र: contentType, content, media

contentType, content, media में से प्रत्येक एक ऐसा मानचित्र है जिसकी कुंजियाँ क्रियाएँ होती हैं। क्रियाएँ हैं Read (पढ़ना), Create (बनाना), Edit (संपादित करना), Delete (हटाना), Publish (प्रकाशित करना), और एक All भी होता है जो सभी क्रियाओं को एक साथ दर्शाता है। हर क्रिया का मान एक ऐसा ऑब्जेक्ट है जो Allow (अनुमति) और Deny (अस्वीकृति) नियमों की सरणी रखता है। यह अनुमति-मानचित्र संरचना SpaceRole जैसी ही है।

"content": {
  "Read":   { "Allow": [ /* नियम */ ], "Deny": [ /* नियम */ ] },
  "Edit":   { "Allow": [ /* नियम */ ] }
}

प्रत्येक नियम (rule) ऑब्जेक्ट में अनुमति के दायरे को सीमित करने वाले वैकल्पिक फ़िल्टर होते हैं।

  • contentType: उस नियम के लागू होने के लक्ष्य को किसी एक विशिष्ट Content Type तक सीमित करता है। Content Type की ओर इंगित करने वाला Refer डाला जाता है।
  • createdBy: केवल किसी विशिष्ट उपयोगकर्ता द्वारा बनाए गए रिसोर्स तक सीमित करता है। sys.id में कोई विशिष्ट id डालने पर केवल उसी व्यक्ति के बनाए हुए तक, और आरक्षित मान :self डालने पर "अभी कॉल करने वाले ServiceUser के बनाए हुए तक" सीमित हो जाता है।
  • tag: केवल किसी विशिष्ट Tag वाले रिसोर्स तक सीमित करता है।

खाली Allow सरणी [] का अर्थ है उस पूरी श्रेणी पर क्रिया की अनुमति देना। चूँकि फ़िल्टर खाली है, छानने के लिए कुछ नहीं रहता, इसलिए सभी रिसोर्स पर वह क्रिया खुल जाती है।

SpaceRole के विपरीत, ServiceUserRole में settings नहीं होता। अनुमति मानचित्र केवल तीन ही हैं: contentType, content, media। क्रियाओं की सूची, फ़िल्टर कुंजियाँ और :self के अर्थ सहित अनुमति मानचित्र लिखने की विधि के लिए समान संरचना वाले SpaceRole का विवरण भी साथ में देखें। :self का उपयोग करके केवल अपने बनाए हुए Content को संपादित करने तक सीमित करने का उदाहरण नीचे संशोधन ब्लॉक में दिखाया गया है।

क्रियाओं की सूची (Read, Create, Edit, Delete, Publish, All) और फ़िल्टर कुंजियाँ (contentType, createdBy, tag) तथा :self के अर्थ weegloo-space-role की अनुमति-नियम परिभाषा पर आधारित हैं। ServiceUserRole का :self केवल वर्तमान ServiceUser के बनाए हुए तक हल होता है।

API

नीचे के सभी एंडपॉइंट का आधार URL https://cma.weegloo.com/v1 है, और Authorization हेडर में CMA को प्रमाणित करने वाला Bearer टोकन आवश्यक है। भूमिका संशोधन (PUT, PATCH) के लिए ऑप्टिमिस्टिक समवर्तीता नियंत्रण हेतु X-Weegloo-Version हेडर (रिसोर्स का वर्तमान sys.version) भी भेजना होता है। निर्माण और हटाने में यह हेडर नहीं होता।

  • ServiceUser: यह भूमिका प्राप्त करने वाला साइन-अप सदस्य (roleOverride)।
  • ServiceLogin: डिफ़ॉल्ट भूमिका (defaultRole) के रूप में ServiceUserRole निर्दिष्ट करना।
  • SpaceRole: Weegloo User हेतु अनुमतियों का समूह (समान अनुमति-मानचित्र संरचना)।