ServiceUserRole
最終更新: 2026年7月3日
ServiceUserRole は、製品にサインアップした end-user、すなわち ServiceUser に付与する権限のまとまりです。Content Type・Content・Media に対して何を(読み取り・作成・編集・削除・公開)できるか、そして特定の Content Type のみ、自分が作成したもののみ、といった範囲を絞り込むフィルターを 1 つのリソースにまとめます。この権限は ServiceUser が呼び出す ACMA/ACDA に適用されます。
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" } })で入ります。
| プロパティ | 型 | 説明 |
|---|---|---|
id | string | リソース固有の識別子。 |
type | string | リソースの種類。ServiceUserRole は常に "ServiceUserRole"。 |
space | Refer<Space> | この ServiceUserRole が属する Space。 |
createdBy | Refer<User> | 作成したユーザー。 |
createdAt | string (date-time) | 作成日時。 |
updatedBy | Refer<User> | 最後に更新したユーザー。 |
updatedAt | string (date-time) | 最終更新日時。 |
version | integer (≥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 1 つに限定します。Content Type を指すReferを入れます。createdBy: 特定のユーザーが作成したリソースのみに限定します。sys.idに特定の id を入れるとその人が作成したものだけに、予約値:selfを入れると「いま呼び出している ServiceUser が作成したものだけ」に限定されます。tag: 特定の Tag が付いたリソースのみに限定します。
空の Allow 配列 [] は、その種類全体にアクションを許可する という意味です。フィルターが空なので除外するものがなく、すべてのリソースにそのアクションが開かれます。
SpaceRole とは異なり、ServiceUserRole には settings がありません。権限マップは contentType・content・media の 3 つだけです。アクションの一覧やフィルターキー、: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 用の権限のまとまり(同じ権限マップ構造)。
