データ単位に表示制限をかける

公開するCELFアプリに対して、表示するデータをユーザーごとに制限する手法について説明します。
具体的には、アプリを起動したユーザーごとに以下のようなルールを設定します。
  • 管理者グループに所属するユーザーは全てのデータを閲覧できる。
  • 管理者グループ以外に所属するユーザーは、自分が登録したデータのみ閲覧できる。
この設定を行うことで、自分が登録したデータについて、管理者グループ以外は閲覧できなくなり、セキュリティを強化することができます。

管理者グループに所属するユーザーの場合

../../../../_images/img_0157.png

一般グループに所属するユーザーの場合

../../../../_images/img_0256.png

ヒント

例として「Excelからアプリを作成する機能のチュートリアル」の一覧表Excelで作成したアプリに対して説明します。
このページで説明する設定は、一覧表Excelで作成したアプリのほかに、単票Excelで作成したアプリでも同様に設定することができます。

表示制限するグループ情報を設定する

グループ管理から、データの表示制限をするグループと、全てのデータを表示するグループを作成します。
例では、表示制限をするグループを「general」、全てのデータを表示するグループを「admin」として作成し、ユーザーを所属させます。
../../../../_images/img_0343.png

参考

グループの作成方法については グループを登録する を参照してください。


アクションセットを修正し表示制限を設定する

修正するアクションセットを開く

  1. アプリのシート一覧から「一覧サンプル_東京支店書」シートをダブルクリックで開きます。
../../../../_images/img_0441.png

ちなみに

例では、「Excelからアプリを作成する機能のチュートリアル」の一覧表Excelで作成したアプリで説明しています。

ヒント

ここで開くシートは、データの表示を行っているシートです。

  1. シートが開いたら、アクションセット設定をクリックし、「再表示」アクションセットをダブルクリックします。
../../../../_images/img_0537.png

ちなみに

再表示アクションセットは、データベースからデータを取得し、画面を更新するためのアクションセットです。

ヒント

例では、表領域に表示するデータの表示制限について説明しています。
ヘッダー情報一覧画面でデータの表示制限をする場合は、「ヘッダー情報一覧画面」のシートを開き、「一覧表示」のアクションセットを修正します。
../../../../_images/img_0628.png

注意

アプリの修正について を実施すると、「再表示」アクションセットや「一覧表示」アクションセットが初期化されます。
そのため、このページで行った修正内容も削除される点に注意してください。

アクションセットを修正する

  1. 「アクションセット設定」ダイアログが開いたら、表示制限をかけたいテーブルのデータを取得しているアクションを見つけます。
../../../../_images/img_0728.png

[1] 対象のテーブルにデータが何件存在するか取得するアクションです。

[2] 対象のテーブルからデータを取得し、シートに表示するアクションです。

ヒント

テーブルのデータを取得するアクションには種類があります。
データを取得するアクションについて知りたい場合は、 データ操作 を参照してください。

ちなみに

例では、表に表示するデータに制限をかけるため、基準テーブルが「一覧サンプル_東京支店_list」からデータを取得しているアクションが対象になります。

  1. 「もし[]ならば」アクションを 1で見つけたアクションの下に配置します。
../../../../_images/img_0823.png

../../../../_images/img_0918.png
  1. 2で配置したアクションの条件に「 = USER.INGROUP(”admin”)」 を入力します。
../../../../_images/img_1016.png

ヒント

データを制限させたいグループIDが"users1"の場合は、「 = USER.INGROUP( "users1" )」となります。

  1. 1で見つけたアクションを3で設定した条件の時に実行するように配置します。
../../../../_images/img_1114.png

../../../../_images/img_1212.png

ヒント

この設定を行うことで、アプリを起動したユーザーが管理者グループの場合、今までとおり全てのデータが表示されます。

  1. 1で見つけたアクションをコピーし、2で配置したアクションの「そうでなければ」の場合に実行するように配置します。
../../../../_images/img_139.png

../../../../_images/img_148.png
  1. 5で配置したアクションに自分が登録したデータのみ表示するための検索条件を追加します。
検索条件を追加するには、検索条件の横のアイコンをクリックします。
../../../../_images/img_158.png
追加する検索条件は、左のリストボックスから下から2番目の「~.LAST_UPDATER」を選び、右側のテキストボックスには「=USER.ID()」と入力します。
この条件を追加することで、データベースからデータを取得する際、自分が登録したデータのみを取得します。
../../../../_images/img_168.png

ヒント

すでに検索条件が設定されている場合、「条件を追加」ボタンをクリックし、条件間における結合条件は「かつ」を指定します。

  1. アクションセットの修正は終了です。「OK」ボタンをクリックして、変更内容を保存します。
  2. シート左上のアイコンをクリックし、「保存」を選択してシートを保存します。
../../../../_images/img_196.png

アプリの動作を確認する

  1. 管理者グループに所属するユーザーでログインした場合、全てのデータが表示されていることを確認します。
../../../../_images/img_0157.png
  1. 管理者グループ以外に所属するユーザーでログインした場合、自分が登録したデータのみ表示されていることを確認します。
../../../../_images/img_0256.png