本文へ移動
Wagby11
マニュアルのグループを選ぶ

WAGBY11 MANUAL / 20

データスコープで操作範囲を限定する

同じモデルでも、自分のデータ、所属グループのデータ、配下グループを含むデータという範囲を指定できます。

最終更新日:

認証と認可の小目次へ

1. このページで伝える機能

同じモデルでも、自分のデータ、所属グループのデータ、配下グループを含むデータという範囲を指定できます。

2. Wagby11で実現できること

営業本部の配下に東営業部と西営業部を置き、案件に所有者と所有グループを記録します。東営業部の担当者には自分または東営業部の案件を、営業本部の責任者には本部と配下部門の案件を表示します。

東営業部の担当者には、自分または所属部門の3件が表示されます。
東営業部の担当者には、自分または所属部門の3件が表示されます。
営業本部の責任者には、東営業部・西営業部などを含む5件が表示されます。
営業本部の責任者には、東営業部・西営業部などを含む5件が表示されます。
範囲意味
selfログオン利用者が所有者のレコード
group直接所属するグループが所有グループに含まれるレコード
groupAndDescendants直接所属または配下グループが所有グループに含まれるレコード

参照は所属部門まで、更新は自分だけ、というように操作別に分けられます。any_ofに複数の範囲を並べると、いずれかに該当するデータを対象とします。同じ操作を許す複数ロールの範囲も合わされるため、追加ロールで意図せず範囲を広げないように設計します。

一覧の編集リンクはモデル単位の更新権限に基づいて表示されます。参照範囲が更新範囲より広い場合、編集リンクがあっても、その案件を更新できるとは限りません。更新画面を開くときと保存するときに対象の範囲を確認し、範囲外の場合は権限不足として拒否します。

3. AIへの指示例

最小限の指示例

担当者は部門内の案件を見られ、自分の案件だけ更新できるようにしてください。

AIは所有者と部門の持たせ方、本人の案件を部門外でも参照するか、責任者が配下部門まで扱うかを類推して補います。部門階層と操作別の範囲を伝えると判断しやすくなります。

より詳細な指示例

担当案件で所有機能を有効にしてください。G_SEC_EDITORの参照範囲は自分または直接所属グループ、更新範囲は自分だけにします。G_SEC_MANAGERの参照・更新・削除は直接所属グループとその配下グループまでにします。登録権限はこれらと分けます。営業本部、東営業部、西営業部のテストデータで範囲を確認してください。
既存の定義・データ・権限を保持し、Wagby11のguide・referenceを確認してください。利用者向けの操作マニュアルを更新し、生成・ビルド後に該当ロールの画面とAPIの動作を確認してください。

4. 編集されるAppSchemaの例

以下は関連する定義の抜粋です。設定の詳細を覚えなくても、対象の利用者・操作・データ範囲をAIへ伝えられます。

permissions:
  - role: G_SEC_EDITOR
    crud: [C]
  - role: G_SEC_EDITOR
    crud: [R]
    record_scope: { any_of: [self, group] }
  - role: G_SEC_EDITOR
    crud: [U]
    record_scope: { any_of: [self] }
  - role: G_SEC_MANAGER
    crud: [R, U, D]
    record_scope: { any_of: [groupAndDescendants] }

所有機能と所有者・所有グループの属性をあわせて定義します。record_scopeを省略した許可は、その定義では標準のレコード範囲を限定しません。組み込みのSYSTEMロールは標準範囲を全件として扱います。業務上の責任者には必要な範囲を明示したロールを使います。

5. 参考資料

データスコープ
designer/docs/appschema/html/guide/10-security/04-permission-scope.html
権限定義
designer/docs/appschema/html/reference/07-permissions.html