サポート > Wagby定義ファイル > 26 活用のヒント > 複数項目の組み合わせパターンに応じたデータの閲覧制御を行う。

複数の暗黙条件指定を組み合わせることで、複雑な権限管理を行えるようになります。(R6.0.0)

仕様の例

あるモデルの複数項目の「組み合わせ」によって、アクセスレベルを算定できるものとします。 このとき、当該アクセスレベルをもった利用者のみ、データの閲覧を行わせたいという要件を実現してみます。

例を示します。ある工場からの出荷製品について、次のような条件でアクセスレベルを用意するものとします。

参照項目 判定
(1) 「該非判定処理」が済 「該非判定結果」が該当 非公開
「該非判定結果」が非該当 公開
「該非判定処理」が未 非公開
(2) 「ステータス」は特認前 非公開
「ステータス」は認定前 非公開
「ステータス」は特認完了 公開
(3) 「製品種別」が一般品 公開
「製品種別」がカスタム 非公開

また、上記 1 〜 3 に対して、次のようなアクセスレベル表を用意するものとします。

アクセスレベル 条件 説明 処理
レベル4 (1) かつ (2) かつ (3) 全世界へ公開 該当製品を公開する
レベル3 (1) かつ (2) アジア地域へ公開
レベル2 (3) 国内へ公開
レベル1 社内限定

設定方法

  1. はじめに、この仕様に記載されている項目をすべてモデル定義シートに記載します。

    図1 モデル定義シート
    ここでのポイントは「アクセスレベル」を整数型として用意していることです。
  2. 「アクセスレベル」は、モデル内の項目から自動計算によって決定されるものとします。
    IF(AND(${gaihihantei#id}==2,${gaihihanteikekka#id}==2, ${status#id}==3,${seihinsyubetsu#id}==1), 4, IF(AND(${gaihihantei#id}==2,${gaihihanteikekka#id}==2, ${status#id}==3), 3, IF(${seihinsyubetsu#id}==1, 2, 1)))

    図2 アクセスレベルの自動計算式
    マスタモデルを参照する場合、自動計算式で「#id」を付与するとマスタモデルのID値を取得することができます。
  3. さらにアクセスレベル項目について、複数の暗黙条件を設定します。

    図3 アクセスレベルへの暗黙条件の設定
    暗黙条件の設定では「指定した権限を満たした場合、この暗黙条件を適用しない(無視する)」というオプションが用意されています。この機能を活用します。

    複数の暗黙条件が指定された場合

    複数の暗黙条件が指定された場合、これらの暗黙条件は「かつ」条件式として扱われます。
    ここで示した例の場合、下記の条件が適用されることになります。

    「アクセスレベル」項目は「1より小さい」かつ「2より小さい」かつ「3より小さい」かつ「4より小さい」(「適用外の権限」が考慮されていないとき)

    これに「適用外の権限」を考慮すると次のようになります。

    access1 権限を持つユーザの場合。
    暗黙条件は以下のように動作します。
    「アクセスレベル」項目は「2より小さい」かつ「3より小さい」かつ「4より小さい」

    ただし、「2より小さい」という条件は「3より小さい」と「4より小さい」の包含しているので結果的には、「アクセスレベル」項目は「2より小さい」という条件が 適用されることになります。
    access1, access2 権限を持つユーザの場合。
    暗黙条件は以下のように動作します。
    「アクセスレベル」項目は「3より小さい」かつ「4より小さい」

    ただし、「3より小さい」という条件は「4より小さい」の包含しているので結果的には、「アクセスレベル」項目は「3より小さい」という条件が適用されることになります。
  4. 続いて、権限を用意します。利用者毎に割り当てる「プリンシパル」と、各プリンシパルに対応した「パーミッション」を次のように指定します。

    図4 プリンシパル、パーミッションの作成
  5. 以上で設定を終了です。この定義ファイルをビルドして実行した例を次に示します。

実行例

  1. はじめに、システム管理者(admin)でログオンし、テストユーザを登録してみます。ここではレベル1からレベル4のプリンシパルをもったアカウントをそれぞれ作成してみました。

    図5 テストユーザの一覧
  2. 続いて製品(テストモデル)を作成します。各項目を入力すると、アクセスレベルの値は自動計算されます。

    図6 テストモデルの登録
  3. アクセスレベル毎のテストモデルを用意した例を示します。

    図7 用意したテストモデル
  4. アクセスレベル1をもったアカウントでログオンしてみます。

    図8 アクセスレベル1をもったアカウントでログオン
  5. アクセスレベル1のデータのみが閲覧できます。

    図9 アクセスレベル1のデータのみが閲覧できる

このページは役に立ちましたか?