• 検索結果がありません。

パーミッションセレクタ

ドキュメント内 intra-mart WebPlatform/AppFramework (ページ 32-36)

パーミッションセレクタは、絞込条件を元に、絞り込まれた情報を提供する機能です。

パーミッションセレクタは、1つのカテゴリに属します。

1つのカテゴリには複数のパーミッションセレクタを含めることが可能です。

絞込みは 1 つのカテゴリを選択して行います。カテゴリに複数のパーミッションセレクタがある場合は、各パーミッ ションセレクタで絞り込まれた情報をマージして結果を返却します。

パーミッションセレクタの設定はサーバマネージャ/conf/access-security.xmlで設定します。

図 7 パーミッションセレクタの概要

2.6.1 パーミッションセレクタの設定

パーミッションセレクタは、設定ファイルに記述します。

設定ファイルは、サーバマネージャ/conf/access-security.xmlです。

<access-security>

<permission-config>

<permission-group>

<category>Category</category>

<permission-selector>

<permission-selector-class>PermissionSelectorClass</permission-selector-class>

<init-param>

<param-name>ParamName</param-name>

<param-value>ParamValue</param-value>

</init-param>

</permission-selector>

</permission-group>

</permission-config>

</access-security>

 タグの説明

<permission-group> パーミッションセレクタをグループ化するタグです。(複数指定可能)

このタグ内、カテゴリ名と複数のパーミッションセレクタを設定します。

<category> このパーミッショングループにカテゴリ名設定します。permission-config タグ内 でユニークなIDを指定します。

<permission-selector> パーミッションセレクタの情報を設定します。(複数設定可能)

<permission-selector-class> パーミッションセレクタの実装クラスをを設定します。

PermissionSelectorインタフェースを実装する必要があります。

<init-param> このクラスに渡す初期化パラメータです。(複数指定可能)

このクラスが生成された時に一度だけこのパラメータで初期化しま す。

作成者株式会社 NTT データ イントラマート Page 23

2.6.2 パーミッションセレクタの呼出し

パーミッションセレクタの呼出しは以下ように行います。

 スクリプト開発モデル

PermissionManager.doSelectionメソッドを使用して絞込みを行います。

var manager = new PermissionManager(“default”);

var results = manager.doSelection(“selector1”,“input”);

上記の例では、ログイングループID(default)で, ‘input’を絞込条件にカテゴリ‘selector1’を指定して、絞込みを行 います。

 JavaEE開発モデル

jp.co.intra_mart.foundation.security.permission.PermissionManagerを用いて、絞込みを行います。

PermissionManager manager = new PermissionManager (“default”);

Collection results = manager.doSelection(“selector1”,“input”);

上記の例では、ログイングループID(default)で, ‘input’を絞込条件にカテゴリ‘selector1’を指定して、絞込みを行 います。

2.6.3 パーミッションセレクタの返却値について

JavaEE開発モデルでは、オブジェクトのCollection型で返却します。

スクリプト開発モデルでは、Collection内の各オブジェトをJavaBeansとみなし、そのプロパティをJavaScriptオブジ ェクトのプロパティに変換して、Array型で返却します。

2.6.4 パーミッションセレクタのインタフェース

パッケージはjp.co.intra_mart.foundation.security.permissionになります。

PermissionSelectorインタフェース

パーミッションセレクタの実装クラスに実装するインタフェース。

Page 24 Copyright 2000-2014 株式会社NTTデータ イントラマート All rights Reserved.

2.6.5 パーミッションセレクタの実装クラス

jp.co.intra_mart.foundation.security.permission.AdminMenuPermissionSelectorクラス

ログイングループを絞込条件にして、ログイングループ管理者に表示可能な管理メニューの一覧を返却 するクラスです。

第二引数には、ログイングループIDを指定します。

intra-mart WebPlatform標準の実装クラスです。

カテゴリはgroup-menu

AdminMenuManager. getMenuTreeメソッド内部での管理メニュー絞込みに使用しています。

図 8 AdminMenuPermissionSelectorクラス

 呼び出し方法

PermissionManager permissionManager = new PermissionManager(groupId);

Collection array = permissionManager.doSelection("group-menu", groupId);

String[] menuIds = (String[]) array.toArray(new String[array.size()]);

jp.co.intra_mart.foundation.security.permission.MenuPermissionSelectorクラス ユーザ情報を絞込条件にして、ユーザに表示可能なメニューの一覧を返却するクラスです。

第二引数には、ユーザIDを指定します。

intra-mart WebPlatform標準の実装クラスです。

カテゴリはaccount-menu

MenuManager. getAccountMenuTreeメソッド内部でのメニュー絞込みに使用しています。

図 9 MenuPermissionSelectorクラス

 呼び出し方法

PermissionManager permissionManager = new PermissionManager(this.groupId);

String infos[] = new String[]{userId,strDate};

Collection array = permissionManager.doSelection("account-menu", infos);

String[] menuIds = (String[]) array.toArray(new String[array.size()]);

作成者株式会社 NTT データ イントラマート Page 25 ユーザのアカウントロールと日付からからすべてのロール(サブロールも含む)を返却するクラスです。

現在の日付で取得する場合は、第二引数にユーザIDを指定します。

指定日付で取得する場合は、第二引数は配列として指定し、{ユーザ ID、日付(文字列型)}を指定しま す。

日付(文字列型)のフォーマットは‘yyyy/mm/dd|hh:MM:ss’です。

intra-mart WebPlatform標準の実装クラスです。(Ver 6.1以降)

カテゴリはaccount-role

AccountManager.getRoleIdsメソッド内部でのロールの取得に使用しています。

10 AccountRolePermissionSelectorクラス

 呼び出し方法

PermissionManager permissionManager = new PermissionManager(this.groupId);

String infos[] = new String[]{userId,strDate};

Collection array = permissionManager.doSelection("account-role",infos);

String[] roles = (String[]) array.toArray(new String[array.size()]);

jp.co.intra_mart.foundation.security.permission.AccessControllerPermissionSelectorクラス ユーザ情報を利用して、有効なアクセスコントローラの一覧を返却するクラスです。

現在の日付で取得する場合は、第二引数にユーザIDを指定します。

指定日付で取得する場合は、第二引数は配列として指定し、{ユーザ ID、日付(文字列型)}を指定しま す。

日付(文字列型)のフォーマットは‘yyyy/mm/dd|hh:MM:ss’です。

intra-mart WebPlatform標準の実装クラスです。(Ver 6.1以降)

カテゴリはaccess-controller

AccessControllerManager.verifyメソッド内部での権限チェックに使用しています。

図 11 AccessControllerPermissionSelectorクラス

 呼び出し方法

PermissionManager permissionManager = new PermissionManager(this.groupId);

String infos[] = new String[]{userId,strDate};

Collection array = permissionManager.doSelection("access-controller",infos);

String[] controllers = (String[]) array.toArray(new String[array.size()]);

Page 26 Copyright 2000-2014 株式会社NTTデータ イントラマート All rights Reserved.

ドキュメント内 intra-mart WebPlatform/AppFramework (ページ 32-36)