サポート > リポジトリ > 認証・認可 > メニューの制御

権限によって表示されるメニューが変わります。Wagbyでは、許可されたメニューのみが表示されます。

システム管理者

システム管理者でログオンすると「管理処理」をはじめとする、すべてのメニューが表示されます。

図1 システム管理者でログオンしたときのメニュー

一般ユーザ

一般ユーザアカウントを用意してみました。システム管理者ではないため「管理処理」タブをはじめとする、いくつかのタブが非表示となっています。

図2 一般ユーザでログオンしたときのメニュー

サンプル : 業務管理者

さらに業務管理者というアカウントを用意してみました。いくつかのメニュー(機能)が追加表示されています。

図3 業務管理者でログオンしたときのメニュー

権限外の機能を操作しようとした場合

権限のないアカウントでログオンし、アドレスバーに直接、権限外の機能を操作する URL を入力しても権限エラーとして扱われます。

新しいプリンシパルを用意します。プリンシパル名、プリンシパルIDは任意です。(プリンシパルIDは英数字とします。)

図4 新しいプリンシパルを用意する

メニュー制御のために、どのパーミッションを有効にするかを設定します。

パーミッション 説明 メニューとの関係 内部の表記
閲覧 詳細表示画面へのアクセスを制御します。 なし。詳細表示画面のメニューは用意されません。 select
検索 検索・一覧表示ならびにサブウィンドウ検索のアクセスを制御します。 別途 "メニュー" パーミッションで設定します。(後述) showlist
更新 更新画面へのアクセスを制御します。 なし。更新画面のメニューは用意されません。 update
登録 登録画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、登録画面のメニューは用意されません。 insert
削除 削除機能へのアクセスを制御します。 なし。削除機能のメニューは用意されません。 delete
ダウンロード CSV・Excelダウンロード画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、ダウンロード画面のメニューは用意されません。 download
アップロード CSV・Excelアップロード更新画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、アップロード更新画面のメニューは用意されません。 upload
メニュー 検索・一覧表示画面を指します。 あり。このパーミッションをもたないアカウントは、検索・一覧表示画面のメニューは用意されません。 menu
一覧更新 一覧更新画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、一覧更新画面のメニューは用意されません。 uploadupdate
帳票出力 帳票出力画面へのアクセスを制御します。 あり。このパーミッションをもたないアカウントは、帳票出力画面のメニューは用意されません。 reportlist
プリンシパルには、一つ以上有効なパーミッションが必要です。パーミッションが未設定(一つも選択されていない)プリンシパルは作成されません。

ビルド後の手順

外部データベースご利用時は、「プリンシパルを追加したときに行うこと」の記載に従いデータのインポートを行ってください。

アカウントの作成

アカウント「業務管理者」を作成した例を図5に示します。

ここで、二つのプリンシパル「一般ユーザ」と「業務管理者」を指定しています。このとき、このアカウントが持つパーミッションは、各プリンシパルに紐づくパーミッションすべて(和集合)となります。

これはWagbyが標準で提供するアカウントモデル juser を拡張した例です。このようにjuserへの項目追加やレイアウトの変更を行うことができます。

図5 アカウント「業務管理者」を用意する
アカウントの追加はトライアルキットではお試しいただけません。開発キットをご利用ください。

権限を持たない利用者が、許可されていないモデルの操作を行おうとアドレスバーにURLを直接入力すると、図6のようなエラー画面が表示されます。

図6 権限エラー

また、ログファイル (wagbyapp/logs/system.log) には次のような記録が残ります。

20xx-xx-xx 00:00:00 [INFO jp.jasminesoft.jfc.controller.BaseController checkPermission] (user1) JFC-00108:セキュリティエラーです。権限は [JFCAppPermission [JFCBasePermission Name:juser Actionlist:insert ] ] となっています。

ログレベルは ERROR ではなく INFO です。セキュリティエラーの検出は正常な処理であるためです。この検出を行う場合は、ログコード "JFC-00108" で検索してください。