ServiceUserRole

最終更新: 2026年7月3日

ServiceUserRole は、製品にサインアップした end-user、すなわち ServiceUser に付与する権限のまとまりです。Content TypeContentMedia に対して何を(読み取り・作成・編集・削除・公開)できるか、そして特定の Content Type のみ、自分が作成したもののみ、といった範囲を絞り込むフィルターを 1 つのリソースにまとめます。この権限は ServiceUser が呼び出す ACMA/ACDA に適用されます。

SpaceRole とは位置づけが異なります。SpaceRole は Weegloo User(コンテンツスタジオ利用者)の権限のまとまりで CMA/CDA に適用され、ServiceUserRole は製品にサインアップした ServiceUser の権限のまとまりで ACMA/ACDA に適用されます。作成した ServiceUserRole は、それ自体では誰にも適用されません。ServiceLogin の既定ロール(defaultRole)に指定するか、ServiceUserroleOverride にバインドして付与します。

リソース構造

以下は ServiceUserRole「購入者」の単一取得レスポンスです。sys(システムプロパティ)とあわせて、権限を定める本体プロパティ contentTypecontentmedia を持ちます。

{
  "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 TypeContent のみ読み取れるように限定した状態です。
  • media: Media(ファイル・画像)に対する権限マップです。

SpaceRole とは異なり、ServiceUserRole には Space 設定へのアクセスを表す settings がありません。ServiceUserSpace 設定を扱わないためです。また、ビルトイン提供かどうかを示す sys.isLocked もありません。

システムプロパティ (sys)

すべての ServiceUserRole は共通のシステムプロパティを sys オブジェクトに持ちます。spacecreatedByupdatedByRefer の形({ "sys": { "id", "type": "Refer", "targetType" } })で入ります。

プロパティ説明
idstringリソース固有の識別子。
typestringリソースの種類。ServiceUserRole は常に "ServiceUserRole"
spaceRefer<Space>この ServiceUserRole が属する Space
createdByRefer<User>作成したユーザー。
createdAtstring (date-time)作成日時。
updatedByRefer<User>最後に更新したユーザー。
updatedAtstring (date-time)最終更新日時。
versioninteger (≥1)リソースのバージョン。更新するたびに 1 ずつ増えます。

ServiceUserRole は公開の概念を持たない設定リソースです。そのため ContentMedia とは異なり、syspublisharchivestatus がなく、version のみを持ちます。versionServiceUserRole を更新するたびに増えます。SpaceRole とは異なり、sys.isLocked もありません。

権限マップ: contentType・content・media

contentTypecontentmedia は、それぞれ アクションをキーに持つマップ です。アクションは Read(読み取り)・Create(作成)・Edit(編集)・Delete(削除)・Publish(公開)であり、すべてのアクションを一括で指す All もあります。各アクションの値は、Allow(許可)と Deny(拒否)のルール配列を持つオブジェクトです。この権限マップの構造は SpaceRole と同じです。

"content": {
  "Read":   { "Allow": [ /* ルール */ ], "Deny": [ /* ルール */ ] },
  "Edit":   { "Allow": [ /* ルール */ ] }
}

各ルール(rule)オブジェクトは、権限範囲を絞り込む任意のフィルターを持ちます。

  • contentType: そのルールが適用される対象を、特定の Content Type 1 つに限定します。Content Type を指す Refer を入れます。
  • createdBy: 特定のユーザーが作成したリソースのみに限定します。sys.id に特定の id を入れるとその人が作成したものだけに、予約値 :self を入れると「いま呼び出している ServiceUser が作成したものだけ」に限定されます。
  • tag: 特定の Tag が付いたリソースのみに限定します。

空の Allow 配列 [] は、その種類全体にアクションを許可する という意味です。フィルターが空なので除外するものがなく、すべてのリソースにそのアクションが開かれます。

SpaceRole とは異なり、ServiceUserRole には settings がありません。権限マップは contentTypecontentmedia の 3 つだけです。アクションの一覧やフィルターキー、:self の意味をはじめとする権限マップの書き方は、同じ構造を使う SpaceRole の説明もあわせて参照してください。:self を使って本人が作成した Content のみ編集できるように絞り込む例は、下の 更新ブロック で示します。

アクションの一覧(ReadCreateEditDeletePublishAll)とフィルターキー(contentTypecreatedBytag)・:self の意味は、weegloo-space-role の権限ルール定義を基準とします。ServiceUserRole:self は、現在の ServiceUser が作成したものだけに解決されます。

API

以下のすべてのエンドポイントの基準 URL は https://cma.weegloo.com/v1 であり、Authorization ヘッダーに CMA を認証する Bearer トークンが必要です。ロールの更新(PUTPATCH)には、楽観的同時実行制御のために X-Weegloo-Version ヘッダー(現在のリソースの sys.version)もあわせて送る必要があります。作成と削除にはこのヘッダーはありません。

  • ServiceUser: このロールを受け取るサインアップ会員(roleOverride)。
  • ServiceLogin: 既定ロール(defaultRole)として ServiceUserRole を指定。
  • SpaceRole: Weegloo User 用の権限のまとまり(同じ権限マップ構造)。