ここでは,ログイン情報の取得について説明します。
アクセス制御機能に対応した文書空間に対してセッションを確立している場合,ログインしたユーザのユーザ情報を取得することができます。ユーザ情報の取得は,DbjSession#getLoginUserInfoメソッドによって実行します。ユーザ情報として取得したい情報を表すプロパティ名の集合を指定して,必要なユーザ情報が取得できます。
ユーザ情報として取得できるプロパティは,次のとおりです。
なお,DbjSession#getLoginUserInfoメソッドは,文書空間にアクセスするメソッドではありません。このため,このメソッドがトランザクションに影響することはありません。
また,セッションを確立している文書空間がアクセス制御機能に対応しているかどうかは,DbjDocSpace#isAccessControlModeメソッドによって確認できます。
ログインユーザ情報を取得する例を示します。
// ログインユーザ情報を取得する例
// sess:DbjSessionインターフェース
// セッションを確立する
DbjDocSpace docspc = sess.login( username, passwd );
if ( !docspc.isAccessControlMode() ) {
// アクセス制御機能に対応していない文書空間の場合
System.out.println
("Sorry, user information cannot be obtained.");
return;
}
// 取得するプロパティ名の一覧を作成する
Set propdef = new HashSet();
propdef.add("dbrProp_UserId"); // ユーザ識別子
propdef.add("dbrProp_UserPrivilege"); // 特権
propdef.add("dbrProp_GroupList");
// 所属するグループのグループ識別子の一覧
// ユーザ情報を取得する
DbjPropSet propSet = sess.getLoginUserInfo(propdef);
// 取得したユーザ情報を表示する
System.out.println("userId = "
+propSet.getStringVal("dbrProp_UserId"));
System.out.println("userPriv = "
+propSet.getIntVal("dbrProp_UserPrivilege"));
System.out.println("groupList = "
+propSet.getListRef("dbrProp_GroupList"));
// セッションを切断する
sess.logout();