jp.co.hitachi.soft.portal.api.user.PortalUserInfoBean

機能

リポジトリに格納されているユーザ情報を取得します。

Beanの項目

宣言

<jsp:useBean id="user"
class="jp.co.hitachi.soft.portal.api.user.PortalUserInfoBean"
scope="session" />

対象スコープ

session,request

requestは性能が低下するためsessionを推奨します。

メソッドの一覧

戻り値のデータ型メソッド説明
booleancheckGroup(String groupName)ユーザがグループに所属しているかをチェックします。
booleancheckLoggedIn()ユーザがログイン済みかをチェックします。
booleancheckOu(String ouName)ユーザが組織に所属しているかをチェックします。
booleancommitData()LDAPまたはDBにデータを書き込みます。
voidcustomizeInfoEnd()排他区間の終了を設定します。
voidcustomizeInfoStart()排他区間の開始を設定します。区間中では,LDAP/DBへのデータの保存処理は保留されます。
ObjectgetCustomizeInfo(String appKey)ポートレットのカスタマイズ情報を取得します。
String[]getGroupName()ユーザのグループ名をすべて取得します。
String[]getOuName()ユーザの組織単位名をすべて取得します。
ObjectgetParameter(String column)ユーザ独自に定義している属性値を戻します。
ObjectgetUserCustomizeInfo(String appKey)ユーザのカスタマイズ情報を取得します。
StringgetUserId()ユーザのユーザIDを取得します。
booleanisAccessible(String portletName)ポートレットのアクセス権を判定します。
voidremoveCustomizeInfo(String appKey)ポートレットのカスタマイズ情報を削除します。
voidremoveUserCustomizeInfo(String appKey)ユーザのカスタマイズ情報を削除します。
voidsetCustomizeInfo(String appKey, Object appData)ポートレットのカスタマイズ情報を保存します。
voidsetRequest(HttpServletRequest req)リクエストオブジェクトを設定します。必ず最初にこのメソッドを呼び出してください。
voidsetUserCustomizeInfo(String appKey, Object appData)ユーザのカスタマイズ情報を保存します。

メソッドの説明

checkGroup
形式

public boolean checkGroup(String groupName)

機能
ユーザがグループに所属しているかをチェックします。<jsp:getProperty>タグ,および<jsp:setProperty>タグでの操作はできません。
パラメタ
groupName - チェックするグループ名
戻り値
グループに所属しているかどうか
例外
IllegalArgumentException - 入力パラメタがnullまたは不正な場合
checkLoggedIn
形式

public boolean checkLoggedIn()

機能
ユーザがログイン済みかをチェックします。<jsp:getProperty>タグ,<jsp:setProperty>タグでの操作はできません。
パラメタ
なし
戻り値
ログインしているかどうか
例外
なし
checkOu
形式

public boolean checkOu(String ouName)

機能
ユーザが組織に所属しているかをチェックします。<jsp:getProperty>タグ,<jsp:setProperty>タグでの操作はできません。
パラメタ
ouName - チェックする組織単位名
戻り値
組織単位に所属しているかどうか
例外
IllegalArgumentException - 入力パラメタがnullまたは不正な場合
commitData
形式

public boolean commitData()

機能
LDAPまたはDBにデータを書き込みます。
パラメタ
なし
戻り値
true - データ書き込み成功
false - データ書き込み失敗
例外
なし
customizeInfoEnd
形式

public void customizeInfoEnd()

機能
排他区間の終了を設定します。
パラメタ
なし
戻り値
なし
例外
なし
customizeInfoStart
形式

public void customizeInfoStart()

機能
排他区間の開始を設定します。区間中では,LDAP/DBへのデータの保存処理は保留されます。
パラメタ
なし
戻り値
なし
例外
なし
getCustomizeInfo
形式

public Object getCustomizeInfo(String appKey)

機能
ポートレットのカスタマイズ情報を取得します。アプリケーションキーに対応するポートレットのカスタマイズ情報を取得します。指定されたカスタマイズ情報が見つからない場合はnullを戻します。<jsp:getProperty>タグ,<jsp:setProperty>タグでの操作はできません。
パラメタ
appKey - アプリケーションキー
戻り値
カスタマイズ情報
例外
IllegalArgumentException - 入力パラメタがnullまたは不正な場合
注意事項
このメソッドを複数回呼び出すとき(複数のカスタマイズ情報を取得するとき)にエラーが発生した場合は,エラーの発生したカスタマイズ情報だけが取得できません。それ以外のカスタマイズ情報については,正常に取得できます。
getGroupName
形式

public String[] getGroupName()

機能
ユーザのグループ名をすべて取得します。ユーザのグループ名が見つからないときはnullを戻します。
パラメタ
なし
戻り値
ユーザのグループ名
例外
なし
getOuName
形式

public String[] getOuName()

機能
ユーザの組織単位名をすべて取得します。ユーザの組織単位名が見つからないときはnullを戻します。
パラメタ
なし
戻り値
ユーザの組織単位名
例外
なし
getParameter
形式

public Object getParameter(String column)

機能
ユーザ独自に定義している属性値を戻します。multivalueの場合はEnumeration型で戻します。singlevalueの場合はObject型で戻します。指定した属性値が見つからない場合はnullを戻します。<jsp:getProperty>タグ,および<jsp:setProperty>タグでの操作はできません。
パラメタには,リポジトリファイルのマッピング情報の共通項目名(dest)を指定します。getParameterを用いて属性値を取得するには,リポジトリファイルにディレクトリ情報の属性と共通項目名を設定する必要があります。設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「リポジトリファイル(Repository.xml)」の説明を参照してください。
パラメタ
column - リポジトリファイルの共通項目名(dest)
戻り値
ディレクトリサーバ上の属性値
例外
IllegalArgumentException - 入力パラメタがnullまたは不正な場合
getUserCustomizeInfo
形式

public Object getUserCustomizeInfo(String appKey)

機能
ユーザのカスタマイズ情報を取得します。アプリケーションキーに対応するユーザのカスタマイズ情報を取得します。指定されたカスタマイズ情報が見つからない場合はnullを返却します。<jsp:getProperty>タグ,および<jsp:setProperty>タグでの操作はできません。
ログインしていない場合,nullを戻します。
パラメタ
appKey - アプリケーションキー(null以外)
戻り値
カスタマイズ情報(シリアライズできる値)
例外
IllegalArgumentException - 入力パラメタがnullまたは不正な場合
注意事項
このメソッドを複数回呼び出すとき(複数のカスタマイズ情報を取得するとき)にエラーが発生した場合は,エラーの発生したカスタマイズ情報だけが取得できません。それ以外のカスタマイズ情報については,正常に取得できます。
getUserId
形式

public String getUserId()

機能
ユーザのユーザIDを取得します。このAPIで取得できるユーザIDは,ユーザ情報のマッピング項目のユーザIDで指定した属性の値です。
ユーザのユーザIDが見つからないときはnullを戻します。
パラメタ
なし
戻り値
ユーザのユーザID
例外
なし
isAccessible
形式

public boolean isAccessible(String portletName)

機能
PortalUserInfoBeanに結び付けられたユーザ(対象ユーザ)が,引数portletNameに指定したポートレット(対象ポートレット)に対してアクセス権があるかどうかを判定します。
なお,対象ユーザがログインしていない状態でこのメソッドを呼び出した場合(ウェルカム画面に配置されたポートレットからこのメソッドを呼び出すなど),対象ユーザを匿名のユーザとみなしてアクセス権を判定します。このとき,ウェルカム画面に対象ポートレットが配置されているかどうか(デプロイされているかどうか)も判定します。
「アクセス権がある」とは,複数ポートレットが表示されている状態で対象ポートレットを表示できること,および対象ポートレットを最大化状態で表示できることを示します。
アクセス権は,対象ポートレットがデプロイされているかどうか,および対象ユーザが対象ポートレットに対してアクセス権があるかどうかの組み合わせにより次のように決定されます。
対象ポートレットのデプロイ状況対象ユーザの対象ポートレットへのアクセス権このメソッドの戻り値
未デプロイありfalse
なし
デプロイ済みありtrue
なしfalse
利用手順
  1. HTTPリクエストを受信してからこのメソッドを使用するまでの間にsetRequestメソッドでPortalUserInfoBeanを初期化します。
  2. このメソッドを呼び出します。
パラメタ
portletName - アクセス権を判定するポートレットの名称(null以外)。指定できる最大文字数は,標準APIポートレットの場合は64文字,標準APIポートレット以外の場合は32文字です。
戻り値
true - パラメタに指定したポートレットにアクセス権がある
false - パラメタに指定したポートレットにアクセス権がない
例外
IllegalArgumentException - 次の場合に発生します。
  • 引数portletNameにnullを指定した場合
  • 引数portletNameに空文字列を指定した場合
  • 引数portletNameに33文字以上の文字数を指定した場合(標準APIポートレットの場合は65文字以上の文字数を指定した場合)
IllegalStateException - setRequestメソッドで初期化する前にこのメソッドが呼ばれたとき
注意事項
このメソッドを使用してアクセス権を判定する場合,ページスコープまたはリクエストスコープ(推奨)でキャッシュしてください。
isAccessibleメソッドの結果は,ページまたはリクエストの開始時点でboolean型の変数に格納され,アプリケーションは,その変数の値を用いてアクセス権を判断します。そのため,複数リクエストにわたってキャッシュしないでください。複数リクエストにわたってキャッシュすると,不正な情報を表示するおそれがあります。
この注意事項には,次に示す理由があります。
  • 呼び出しオーバヘッドは無視できない
    boolean型の変数参照とpublicメソッドの呼び出しでは,実行速度が数倍異なるため,オーバヘッドは無視できません。
  • 計算量
    単体コストは,(コミュニティ数)×(コミュニティ単位の平均所属ポートレット数)に比例します。計算量は,O(n)です。したがって,コミュニティ数がおおむね2,000を超える環境でこのメソッドを頻繁に呼び出すと,性能に影響を及ぼします。
    このメソッドを呼び出す回数の目安を次に示します。
      推奨値:リクエスト内で1回/調査対象ポートレット 以内
      最大値:リクエスト内で5回/調査対象ポートレット 以内
removeCustomizeInfo
形式

public void removeCustomizeInfo(String appKey)

機能
アプリケーションキーに対応するポートレットのカスタマイズ情報を削除します。
パラメタ
appKey - アプリケーションキー
戻り値
なし
例外
IllegalArgumentException - 引数が不正またはnullの場合
removeUserCustomizeInfo
形式

public void removeUserCustomizeInfo(String appKey)

機能
アプリケーションキーに対応するユーザのカスタマイズ情報を削除します。<jsp:getProperty>タグ,および<jsp:setProperty>タグでの操作はできません。
ログインしていない場合,何もしません。
パラメタ
appKey - アプリケーションキー(null以外)
戻り値
なし
例外
IllegalArgumentException - 入力パラメタがnullまたは不正な場合
setCustomizeInfo
形式

public void setCustomizeInfo(String appKey,
                           Object appData)

機能
アプリケーションキーに対応するポートレットのカスタマイズ情報をセットします。<jsp:getProperty>タグ,および<jsp:setProperty>タグでの操作はできません。ログインしていないときは何もしません。
パラメタ
appKey - アプリケーションキー
appData - カスタマイズ情報(シリアライズできる値)
戻り値
なし
例外
IllegalArgumentException - 入力パラメタがnullまたは不正な場合
setRequest
形式

public void setRequest(HttpServletRequest req)

機能
リクエストオブジェクトを設定します。PortalUserInfoBeanを使用する場合,必ず最初にこのメソッドを呼び出してください。リクエストの2回目以降は呼び出す必要はありません。ただし,2回目以降は正しいリクエストオブジェクトを設定してください。
パラメタ
req - イベント処理に渡されたリクエストオブジェクト
戻り値
なし
例外
IllegalStateException - 引数が不正またはnullの場合
setUserCustomizeInfo
形式

public void setUserCustomizeInfo(String appKey,
                               Object appData)

機能
アプリケーションキーに対応するユーザのカスタマイズ情報を保存します。<jsp:getProperty>タグ,および<jsp:setProperty>タグでの操作はできません。
ログインしていない場合,何もしません。
ユーザ単位に情報を保存するため,ポートレット間でデータを受け渡せますが,ポートレットごとにアプリケーションキーが衝突しないように注意する必要があります。また,"hptl"で始まるキー名は予約されています。
パラメタ
appKey - アプリケーションキー(null以外)
appData - カスタマイズ情報(シリアライズできる値)
戻り値
なし
例外
IllegalArgumentException - 入力パラメタがnullまたは不正な場合