6.1. グループの作成¶
-
POST
/1/
(tenantId)/groups/
(groupName)¶ グループを作成する。
Request Headers: - X-Application-Id -- アプリケーションID(必須)
- X-Application-Key -- アプリケーションキー(必須)
- X-Session-Token -- セッショントークン(オプション)
- Content-Type -- "application/json"
Parameters: - groupName (string) -- グループ名
Request JSON Object: - users (array) -- 所属ユーザIDの一覧(オプション)
- groups (array) -- 所属グループ名の一覧(オプション)
- ACL (object) -- ACL(オプション)
Status Codes: - 200 OK -- 正常登録した
- 400 Bad Request -- パラメータ・リクエストボディ不正
- 401 Unauthorized -- 認証エラー
- 403 Forbidden -- 権限エラー
- 409 Conflict -- 同名のグループ名の重複登録
- 415 Unsupported Media Type -- Content-Type 不正
Response JSON Object: - _id (string) -- グループID
- name (string) -- グループ名
- users (array) -- 所属ユーザIDの一覧
- groups (array) -- 所属グループ名の一覧
- ACL (object) -- ACL
- createdAt (string) -- 作成日時
- updatedAt (string) -- 更新日時
- etag (string) -- ETag値
リクエスト
グループ名は groupName に指定する。
グループ名には100文字以下の '/' を除く任意の UTF-8 文字列が使用できる。 ただし、先頭が "_EXT-" で開始するグループ名は特殊用途に予約されているため使用できない。
リクエストボディに、グループの定義を指定する。以下に例を示す。
{ "users": [ "xxxxx", "yyyyy", "zzzzz" ], "groups" : [ "group2", "group3" ], "ACL": { /* ACL */ } }
- users に、ユーザIDの一覧を指定する。
- groups に、このグループが包含する他のグループ名の一覧を指定する。
- ACL には、このグループの読み込み・変更権限を設定する。
上記例では、作成したグループは group2, group3 を包含するため、group2 および group3 に所属するユーザ、 およびgroup2 や group3 が包含する他のグループのユーザも、本グループに所属するとみなされる。
また、自分が所属するグループを確認したい場合は、グループ一覧の取得, グループの取得, 自ユーザ情報の取得 のいずれかのAPIを使用する。
ACL を指定しなかった場合は以下の ACL が自動的に設定される。
- ログイン済みの場合: 全フィールドが空。オーナ(作成ユーザ)のみがアクセス可。
- 未ログイン状態の場合 : r, w に "g:anonymous" が設定され、誰でも読み書き可。
レスポンスボディの例
{ "_id":"52116f01ac521e1742000001", "name": "group3", "users": [ "xxxxx", "yyyyy", "zzzzz" ], "groups" : [ "group2", "group3" ], "ACL": {/*ACL*/}, "createdAt": "2013-08-27T04:37:30.000Z", "updatedAt": "2013-08-27T04:37:30.000Z" "etag": "8c92c97e-01a7-11e4-9598-53792c688d1b" }
注意事項
- グループはアプリ毎ではなく、テナント毎に作成される。
- グループ作成時は_GROUPS バケットのcontentACLに対する create 権限が必要。
- "users" と "groups" には、既に登録済みのユーザとグループを指定すること。 未登録のユーザ・グループを指定した場合は400エラーが返却される。
- "users" と "groups" を指定しない場合は、users, groupsを空で作成する。