条件によって権限の適用可否を変更する
最終更新日: 2020年3月14日
R8 | R9
対象となるモデルの項目の値によって、指定した権限を適用するか、しないかを設定することができます。
権限をもったアカウントで操作し、かつ条件式が true になったとき、当該項目は閲覧可能になります。
条件式が false であれば項目は不可視(表示されない)になります。
権限をもったアカウントで操作し、かつ条件式が true になったとき、当該項目は更新可能になります。
条件式が false であれば項目は更新不可(閲覧のみ)になります。
ここでは、顧客モデルの「電子メール」項目の更新権限に、条件を設定してみます。
「権限」タブ内の「機能権限」タブを開きます。二つのプリンシパル「個人情報R」「個人情報W」を追加しました。これらはそれぞれ、パーミッション「メールR」「メールW」を保持します。
"R" は読み込み、"W" は書き込みを意図して命名しています。
「電子メール」項目に、閲覧権限と更新権限を設定します。[詳細...]
ここに条件を指定することができます。具体的には、項目に対する権限指定入力欄に「;(セミコロン)」を記述します。この区切り文字の右側が条件式となります。条件式の戻り値は
この式は、年齢(age)が20以上の場合にtrueを返すとしています。そのため、20歳以上は更新可能で、それ以下は(更新権限を有していても)更新不可となります。
以下のテストはトライアルキットではお試しいただけません。アカウントの追加処理を行うためです。開発キットをご利用ください。
アカウント「manager」を用意しました。「manager」は "顧客管理" および "個人情報R" そして "個人情報W" プリンシパルをもちます。
「manager」でログオンし、顧客データを更新した例です。年齢は20歳以上という条件を満たすため、「電子メール」項目は更新できます。
もう一つの顧客データの更新例です。年齢は20歳以上という条件を満たさないため、「電子メール」項目は更新できません。
条件式の対象となる項目(上記の例では「年齢」)の値が変更されたら、画面を再描画するという設定と併用することができます。
これにより、登録・更新画面で値を変更すると自動的に項目の表示が切り替えられるようになります。
SCREENTYPE関数とHASMODELPERMISSION関数を利用して、画面によって権限をコントロールする例を紹介します。
この式の説明は次のとおりです。
更新権限が無効となり、入力不可となった場合に、その値を空白で上書きすることができます。
以下の例で「事業所名」項目に着目してください。この項目は、事業所名が "その他" の場合に入力可としています。
事業所名を選択すると、都道府県および市町村名が参照連動するようにしています。
ここで事業所名を "その他" とすると、「事業所名(その他の場合)」が入力できるようにしています。
そのあと事業所名を再度、選択します。このとき「事業所名(その他の場合)」の値を空白で上書きしています。
「事業所名(その他の場合)」に更新権限を指定しています。ここで "空白で上書き" を指定すると、更新権限が無効になったとき、この値を空白で上書きします。
条件式の対象となる項目の値が変更されたら、画面を再描画するという設定と併用してください。
これにより、登録・更新画面で値を変更すると自動的に項目の表示が切り替えられるようになります。
繰り返し項目および繰り返しコンテナに条件付き権限設定を適用した場合、次のような動作となります。
条件付き権限設定を行った項目を検索画面の検索条件に加えた場合、条件部は無視されます。
条件付き権限設定を行った項目を一覧表示画面に加えた場合、次のようになります。
概要
閲覧権限に条件式を設定する
更新権限に条件式を設定する
定義方法
true
またはfalse
のいずれかとします。
p_mailW; IF(${age}>=20,true,false)
例
重要
ワンポイント
登録画面では入力可能だが、更新画面では入力不可としたい
select;
IF(EXACT(SCREENTYPE(),"insert"),
true,
HASMODELPERMISSION("perm_koushin","product"))
更新権限が無効になったときの動作
設定方法
仕様・制約
入力値によって条件式を適用したい場合
繰り返し項目・繰り返しコンテナ項目
検索条件
一覧表示