![]() | |
Sun Java™ System Identity Manager 7.0 ワークフロー、フォーム、およびビュー |
第 4 章
FormUtil メソッドこの章では、もっともよく使用される FormUtil メソッドについて説明します。
FormUtil クラスは、フォームオブジェクト内の XPRESS 式から呼び出せるユーティリティーメソッドの集合です。FormUtil メソッドは、通常、Select フィールドと MultiSelect フィールドの valueMap 内で、使用できる値のリストを制限するために使用されます。また、日付やディレクトリ DN などの文字列値をフォーマットするための追加メソッドも用意されています。
関連する章
- 「Identity Manager のビュー」- ユーザービューと呼ばれる Identity Manager の内部データ構造と連携する Identity Manager フォームについて説明しています。フォームをカスタマイズするときは、ビューの属性を呼び出します。
- 「Identity Manager フォーム」- フォーム内での FormUtil メソッドの使用例については、「非表示コンポーネントの使用」と「リストデータの取り込み」の節を参照してください。
メソッドの呼び出しフォーム内から FormUtil メソッドを呼び出すときは、次の構文を使用します。
<invoke class = 'com.waveset.ui.FormUtil'
name = 'method_name'>
<ref>:display.session</ref>
<s>arg2</s>
</invoke>
name フィールドには、メソッドの名前を指定します。
ほとんどの FormUtil メソッドでは、ビュー属性 display.session を参照し、最初の引数として LighthouseContext または Session オブジェクトを渡す必要があります。フォームは、ベースコンテキストプレフィックスとともに使用されることが多いので、ベースコンテキストプレフィックスを削除できるように、display.session を参照する際には先頭に常にコロンを付けて参照することをお勧めします。
メソッドここでは、もっともよく使用される FormUtil メソッドを紹介します。
callResourceMethod メソッド
callResourceMethod(LighthouseContext s, String resourceName, String methodName, Map args) throws WavesetException {
説明
引数を指定して、リソース上の指定メソッドを呼び出します。
buildDn メソッド
buildDn(String name,
String baseContext)
説明
名前を作成するために名前とベースコンテキストを受け取ります。このメソッドは、完全修飾識別 (DN) 名を返します。たとえば、group1 と dc=example,dc=com を渡すと、cn=group1, dc=example, dc=com という文字列が返されます。
表 4-2 buildDn のパラメータ
パラメータ
説明
name
ディレクトリオブジェクトの名前を指定します (一般的には、共通名 cn の値を指定します)。
baseContext
ベースコンテキストまたはコンテナを指定します。これは、ディレクトリオブジェクトの完全識別名を形成するために共通名と連結される、ベース識別名の値です。
戻り値
CN=<name>,<baseContext> という形式で、1 つの値を返します。
例
<invoke name='buildDn' class='com.waveset.ui.FormUtil'>
<s>North America</s>
<s>ou=marketing,dc=acme,dc=com</s>
</invoke>
この例の結果として返される内容は次のとおりです。<s>CN=North America,ou=marketing,dc=acme,dc=com</s>
XPRESS では、同じ機能を次のように表現できます。
<concat>
<s>CN=</s>
<s>North America</s>
<s>,</s>
<s>ou=marketing,dc=acme,dc=com</s>
</concat>
buildDns メソッド
buildDns(List names,
String baseContext)
または
buildDns(String names,
String delimiter,
String baseContext)
説明
リスト内の各トークンに追加する、名前のリストとベースコンテキストを受け取ります。どちらのメソッドでも、完全修飾 DN 名を返します。
たとえば、group1, group2 と dc=example, dc=com を渡した場合は、cn=group1, dc=example, dc=com と cn=group2, dc=example, dc=com とのリストが返されます。
パラメータ
1 つめのメソッドは、次の表で説明する引数を受け取ります。
2 つめのメソッドは、次の表で説明する 3 つの引数を受け取ります。
表 4-4 buildDns のパラメータ (2 つめのメソッド)
パラメータ
説明
names
コンマやセミコロンなどの区切り文字によって区切られた、複数の名前を含む文字列を指定します。
delimiter
複数の名前を含む文字列内で使用される区切り文字を指定します。区切り文字は、通常、コンマ (,) またはピリオド (.) です。
baseContext
ベースコンテキストを指定します。
戻り値
それぞれの値が CN=<name>,<baseContext> の形式の、値または文字列のリストを返します。
例
例 1: buildDns が返すリスト
<invoke name='buildDns' class='com.waveset.ui.FormUtil'>
<list>
<s>North America</s>
<s>Europe</s>
</list>
<s>ou=marketing,dc=acme,dc=com</s>
</invoke>
この例の結果として返される内容は次のとおりです。
<list>
<s>CN=North America,ou=marketing,dc=acme,dc=com</s>
<s>CN=Europe,ou=marketing,dc=acme,dc=com</s>
</list>
例 2: buildDns (String names、String delimeter、String baseContext) の返すリスト
<invoke name='buildDns' class='com.waveset.ui.FormUtil'>
<s>North America,Europe,China</s>
<s>,</s>
<s>ou=marketing,dc=acme,dc=com</s>
</invoke>
この例の結果として返される内容は次のとおりです。
<list>
<s>CN=North America,ou=marketing,dc=acme,dc=com</s>
<s>CN=Europe,ou=marketing,dc=acme,dc=com</s>
<s>CN=China,ou=marketing,dc=acme,dc=com</s>
</list>
この機能を、XPRESS を記述することで実現しようとはしないでください。
checkStringQualityPolicy メソッド
checkStringQualityPolicy(LighthouseContext s, String policy, Object value, Map map, List pwdhistory, String owner)
説明
文字列ポリシーに対して、指定された文字列の値を検証します。
戻り値
文字列がポリシーのテストに合格した場合には、このメソッドは true を返します。文字列がポリシーテストに合格しなかった場合、このメソッドはエラーメッセージを返します。map パラメータの returnNull オプションを true に設定した場合は、成功時に NULL オブジェクトが返されます。
controlsAtLeastOneOrganization メソッド
controlsAtLeastOneOrganization(LighthouseContext s, List organizations)
throws WavesetException {
説明
現在認証されているユーザーが、1 つまたは複数の組織 (ObjectGroup) 名のリストに含まれるいずれかの組織を制御できるかどうかを返します。サポートされる組織リストには、ObjectGroup タイプのすべてのオブジェクトのリスト表示で返される組織が含まれます。
表 4-6 controlsAtLeastOneOrganization のパラメータ
パラメータ
説明
s
ユーザーの現在の Lighthouse コンテキスト (セッション) を指定します。
organizations
1 つまたは複数の組織名のリストを指定します。サポートされる組織リストには、ObjectGroup タイプのすべてのオブジェクトのリスト表示で返される組織が含まれます。
戻り値
true - 現在認証されている Identity Manager ユーザーが、リストに含まれるいずれかの組織を制御できることを表します。
false - 現在認証されている Identity Manager ユーザーが、リストに含まれるどの組織も制御できないことを表します。
getObject メソッド
getObject(LighthouseContext s,
String typeName,
String id)
throws WavesetException
説明
リポジトリからオブジェクトを取得します (認証されていることが前提)。
getObjectNames メソッド
getObjectNames(LighthouseContext s,
String typeName)
throws WavesetException
または
getObjectNames(LighthouseContext s,
String typeName,
Map options)
throws WavesetException
説明
指定されたタイプのオブジェクトでセッションの所有者 (または現在のログインユーザー) がアクセスできるオブジェクトの名前のリストを返します。オプションマップに追加パラメータを指定し、返される名前のリストを制御できます。
オブジェクト名のリストを返すときは、session.getObjects() を実行するよりも、このメソッドを使用することをお勧めします。メソッドは、まず、ObjectCache を検索し、必要に応じて次にリポジトリを検索します。
表 4-9 オプションの値
オプション
値
conditions
「追加オプション」を参照してください。
current
「追加オプション」を参照してください。
scopingOrg
「追加オプション」を参照してください。
戻り値
このメソッドは、指定されたタイプのオブジェクトでセッションの所有者がアクセスできるオブジェクトの名前のリストを返します。
getOrganizationsDisplayNames メソッド
getOrganizationsDisplayNames(LighthouseContext s)
throws WavesetException
または
getOrganizationsDisplayNames(LighthouseContext s, Map options)
throws WavesetException
説明
現在の管理者がアクセスできる、組織ハンドルのリストを返します。組織の選択リストおよび複数選択リストを使用するフォームでは、このメソッドを使用する必要があります。
注
このメソッドは、getOrganizationsDisplayNames() の呼び出しに pathPrefix オプションが指定されていない場合にのみ、useOrganizationDisplayNames にシステム設定のデフォルト値を適用します。
パラメータ
オプションは、キーと値のペアの引数のマップから構成されます。
表 4-11 オプションの値
オプション
値
pathPrefixes
true - 組織のパスを含む、返されるハンドルのリスト。
false - 表示名を含む、返されるハンドルのリスト
true 以外 (未指定) - ハンドルタイプに、システムの useOrganizationsDisplaynames の設定のデフォルト値を適用します。
Identity Manager のインストールシステムが重複する組織名を持つ場合は、パスを使用します。
excluded
返される valueMap に含めない組織を指定します。
current
この引数に組織名のリストを指定すると、これらの追加組織を含む list が返されます。パスを要求しているときは、これはパスのリストとなります。表示名を要求しているときは、これは表示名のリストとなります。
conditions
「追加オプション」を参照してください。
scopingOrg
「追加オプション」を参照してください。
filterVirtual
オプションマップでこの引数を true に設定した場合は、返される valueMap に仮想組織が含まれません。
バージョンに固有の動作
このメソッドの動作は、インストールされている Identity Manager のバージョンが v3.1x 以降であるかどうかによって異なります。バージョン 3.1.x では、このメソッドは同一名の複数の組織をサポートしません。この製品のバージョン 4.x 以降では、同一名の複数の組織がサポートされます。
このメソッドの v3.1.x バージョンを使用する理由
カスタマイズしたインストールシステムが次のような特徴を持つときは、複数の組織をサポートしないように、このメソッドをリセットしてください。
v3.1.x の動作に合わせるためのメソッドの再設定
v3.1.x より後のバージョンの Identity Manager を使用していて、このメソッドを前述のように動作させる必要がある場合は、次のシステム設定オブジェクト属性を、次のように変更します。
<Attribute name='useOrganizationDisplay Names'>
<Boolean>false</Boolean>
</Attribute>
getResources メソッド
getResources(LighthouseContext s)
throws WavesetException
または
getResources(LighthouseContext s,
List current)
throws WavesetException
または
getResources(LighthouseContext s,
String matchType,
String value)
throws WavesetException
または
getResources(LighthouseContext s,
String matchType,
String value
List current)
または
getResources(LighthouseContext s,
Map Options)
説明
特定のリソース属性値 (type=LDAP など) と一致するリソースの名前リストを作成します。現在のリストを渡すと、リストはマージされます。
- このメソッドの最初の変数がとる値は session のみで、管理者が表示できるすべてのリソースが返されます。
- このメソッドの 2 番目の変数は、すべてのリソースを返し、それを現在のリストにマージします。
- このメソッドの 3 番目の変数は、特定の属性値と一致するすべてのリソースを返します。
- このメソッドの 4 番目の変数は、特定の属性値と一致するすべてのリソースを返し、それを現在のリストにマージします。
サポートされるリソースタイプ名については、「ビュー」を参照してください。
表 4-13 オプションの値
オプション
値
conditions
「追加オプション」を参照してください。
current
「追加オプション」を参照してください。
scopingOrg
「追加オプション」を参照してください。
matchType パラメータに指定する、クエリー可能な属性の有効なタイプは次のとおりです。
getResourceObjects メソッド
getResourceObjects(LighthouseContext session, String objectType, String resourceId, Map options, String cacheList, String cacheTimeout, String clearCacheIfExists)
または
getResourceObjects(LighthouseContext session, String objectType, String resourceId, Map options)
または
getResourceObjects(String subjectString, String objectType, String resourceId, Map options)
または
getResourceObjects(String subjectString, String objectType, String resourceId, Map options, String cacheList, String cacheTimeout, String clearCacheIfExists)
説明
各オブジェクトが、タイプ、名前、ID (DN または完全修飾名)、および要求される searchAttrsToGet の値の属性セットを持つオブジェクトのリストを返します。返される値は、GenericObjects のリストです。それぞれの GenericObject には、マップへのアクセスと同様の方法でアクセスできます。各オブジェクトで get メソッドを呼び出します。このとき、属性名が渡され、属性値が返されます。
パラメータ
表 4-16 Option パラメータに指定できる値
オプション
値
searchContext
検索対象のコンテキスト (ResourceAdapter.RA_SEARCH_CONTEXT) を指定します。指定しない場合、メソッドは RA_BASE_CONTEXT から値を取得しようとします。値が指定されていない場合は、このメソッドは論理上の上位から検索を行います。
searchFilter
(省略可能) RFC 1558 に規定されている LDAP 検索フィルタフォーマットでは、1 つまたは複数のオブジェクトが and または or で連結されます。規定されていない場合、このメソッドは、指定されている objectType (ResourceAdapter.SEARCH_FILTER) を使用してフィルタを作成します。
searchScope
メソッドの検索対象を、指定した searchContext のコンテキストに含まれる現在のオブジェクト、または指定した searchContext (ResourceAdapter.RA_SEARCH_SCOPE) に含まれるすべてのサブコンテキストに設定します。有効な値には、object、oneLevel、またはsubTree があります。オブジェクトを指定した場合は、searchContext は単一オブジェクトの完全 DN と見なされるため、1 つのオブジェクトのみが返されます。oneLevel は、特定の baseContext (searchContext) 以下の、1 つまたは複数のフェッチを意味します。subTree は、oneLevel 検索の実行を繰り返します。searchContext は、指定した searchContext に含まれるすべてのサブコンテキストを対象に検索を実行することを表します。
searchTimeLimit
検索の制限時間を、ミリ秒単位で指定します (ResourceAdapter.RA_SEARCH_TIME_LIMIT)。検索は、この制限時間内に行われます。
searchAttrsToGet
オブジェクトごとに取得する、objectType に固有の属性名のリストを指定します。
runAsUser
この要求を実行するユーザーの名前を指定します。指定しない場合は、デフォルト値として、リソースプロキシ管理ユーザーが適用されます。
runAsPassword
runAsUser のパスワードを指定します。指定したユーザーとしてリスト要求を実行するために、その権限があることをリソースに対して認証するのに必要とされます。
current
「追加オプション」を参照してください。
conditions
「追加オプション」を参照してください。
scopingOrg
「追加オプション」を参照してください。
このメソッドは、Session の代わりに subjectString を指定して実行することもできます。
getRoles メソッド
getRoles(LighthouseContext s)
または
getRoles(LighthouseContext s, String current)
または
getRoles(LighthouseContext s, List current)
または
getRoles(LighthouseContext s, Map options)
説明
現在の管理者がアクセスできる、ロール名のリストを返します。現在の値、または現在のリストを指定すると、返されるロール名にリスト内のロール名が追加されます。
表 4-17 getRoles のパラメータ
パラメータ
説明
s
有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。
options
current、conditions、および scopingOrg。次の表を参照してください。
表 4-18 オプションの値
オプション
値
current
「追加オプション」を参照してください。
conditions
「追加オプション」を参照してください。
scopingOrg
「追加オプション」を参照してください。
戻り値
現在の管理者がアクセスできる、ロール名のリストを返します。現在の値、または現在のリストを指定すると、返されるロール名にリスト内のロール名が追加されます。
getUnassignedApplications メソッド
getUnassignedApplications(LighthouseContext s, Map options)
throws WavesetException {
説明
ユーザーのプライベートアプリケーションに適したアプリケーション名のリストを作成します (プライベートアプリケーションは、ユーザーに直接割り当てられているアプリケーション)。これは、ロールを通じてすでにユーザーに割り当てられているアプリケーションの名前を除く、すべての利用可能なアプリケーションのリストです。
作成されるリストは、フォームでのプライベートアプリケーションの割り当てに便利です。
パラメータ
getUnassignedApplications は、次のオプションをとります。
表 4-19 getUnassignedApplications のパラメータ
パラメータ
説明
context
Identity Manager コンテキストオブジェクト
options
current、currentRoles、conditions。次の表を参照してください。
getSubordinates メソッド
getSubordinates(LighthouseContext s, manager, Map options)
throws WavesetException {
説明
ユーザーの、指定された管理対象部下のリストを取得します。
表 4-22 getSubordinates のパラメータ
パラメータ
説明
s
Identity Manager コンテキストオブジェクト
manager
要求する部下のマネージャーを指定します。
options
firstlevel、lastLevel、conditions。次の表を参照してください。
表 4-23 オプションの値
オプション
値
firstLevel
結果に含める最上位組織レベルを指定します。
0 は、直接レポートを表します。
lastLevel
結果に含める最下位組織レベルを指定します。
-1 は、すべてのレベルを表します。
conditions
(省略可能) 返されるユーザー名のリストをさらにフィルタリングするための、ユーザー属性条件のマップ。「追加オプション」を参照してください。
戻り値
このメソッドは、部下のソート済みリストを返すか、または WavesetException をスローします。
getSubordinates を使用した規則の例
getUnassignedResources メソッド
static public List getUnassignedResources(LighthouseContext s, Map
options) throws WavesetException
説明
ユーザーのプライベートリソースに適したリソース名のリストを作成します (プライベートリソースは、ユーザーに直接割り当てられているリソース)。これは、ロールを通じてすでにユーザーに割り当てられているリソースの名前を除く、すべての利用可能なリソースのリストです。
作成されるリストは、フォームでのプライベートリソースの割り当てに便利です。
表 4-24 getUnassignedResources のパラメータ
パラメータ
説明
context
Identity Manager コンテキストオブジェクト
options
availableToOrgScope、current、currentRoles、currentResourceGroups、conditions、scopingOrg。次の表を参照してください。
表 4-25 オプションの値
オプション
値
availableToOrgScope
(リスト) 組織名 (または、一意の場合は paths または displayNames) を指定します。このリストに含まれる組織が利用できる、または組織階層でその組織より下位レベルにある組織が利用できるリソースが返されます。現在のリストに含まれるリソースも常に返されます。
current
「追加オプション」を参照してください。
currentRoles
(リスト) 現在のロール名を指定します。返されるリストには、現在のリストに名前が指定されているリソースを除き、指定されるいずれかのロールによって割り当てられるリソースは含まれません。
currentResourceGroups
(リスト) 現在のリソースグループの名前を指定します。返されるリストには、現在のリストに名前が指定されているリソースを除き、指定されるいずれかのリソースグループによって割り当てられるリソースは含まれません。
conditions
「追加オプション」を参照してください。
scopingOrg
「追加オプション」を参照してください。
戻り値
このメソッドは、ユーザーのプライベートリソースに適したリソース名のリストを返します。
getUsers メソッド
getUsers(LighthouseContext s)
または
getusers(LighthouseContext s, Map options)
説明
このメソッドの最初の変数は、すべてのユーザーを返します。2 番目の変数は、デフォルトではすべてのユーザーを返しますが、リストをさらにフィルタリングするためのオプションのマップを指定できます。
表 4-26 getUsers のパラメータ
パラメータ
説明
s
有効な Identity Manager コンテキストを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。
options
current、conditions、exclude、scopingOrg。次の表を参照してください。
表 4-27 オプションの値
オプション
値
current
「追加オプション」を参照してください。
conditions
「追加オプション」を参照してください。サポートされるユーザーのクエリー可能属性名のほかに、擬似属性 userType、similarTo も使用できます。詳細については、FomUtil の Javadoc を参照してください。
exclude
返されるリストから除外するユーザーのタイプを指定します。値は、administrators と endUsers のいずれかです。
administrators -- 返されるユーザーのリストには、直接的または間接的に 1 つまたは複数の機能が割り当てられ (AdminRoles の設定)、1 つまたは複数の組織を制御するユーザーは含まれません。
endUsers -- 返されるリストには、1 つまたは複数の機能と、制御対象組織が直接的または間接的に割り当てられているユーザーのみが含まれます。
scopingOrg
「追加オプション」を参照してください。
listResourceObjects メソッド
listResourceObjects(LighthouseContext s,
String objectType,
List resourceList,
Map options,
String cacheList)
または
listResourceObjects(LighthouseContext s,
String objectType,
List resourceList,
Map options,
String cacheList,
String clearCacheIfExists}
2 番目のメソッドがキャッシュをクリアする点を除き、最初の 2 つの変数は同じです。
listResourceObjects(String subjectString,
String resourceObjectType,
List resourceList,
Map options,
String cacheList)
または
listResourceObjects(String subjectString,
String objectType,
String resourceId,
Map options,
String cacheList)
String clearCacheIfExists)
または
listResourceObjects(String subjectString,
String objectType,
String resourceID,
Map options,
String cacheList)
または
listResourceObjects(String subjectString,
String objectType,
String resourceID,
Map options,
String cacheList)
String cacheTimeout
String clearCacheIfExists)
2 番目のメソッドがキャッシュをクリアする点を除き、最初の 2 つの変数は同じです。
listResourceObjects(LighthouseContext session,
String objectType,
String resourceId,
Map options,
String cacheList,
String clearCacheIfExists)
throws WavesetException {
または
listResourceObjects(LighthouseContext session,
String objectType,
String resourceId,
Map options,
String cacheList)
throws WavesetException {
または
listResourceObjects(LighthouseContext session,
String objectType,
String resourceId,
Map options,
String cacheList)
String cacheTimeout
String clearCacheIfExists
throws WavesetException
または
listResourceObjects (String subjectString, String objectType, List resourceList, Map options, String cacheList, String clearCacheIfExists)
説明
指定したタイプ (たとえば、group) のリソースオブジェクトのリストを取得します。このメソッドの最初の試行では、サーバーの resourceObjectListCache からリストが取得されます。見つかった場合は、リストが返されます。
リストが見つからなかった場合は、メソッドは各リソースで listResourceObjects メソッドを呼び出し、結果リストのマージ、ソート、および重複削除を行います。最後に、同じリソースからの同じリソースオブジェクトタイプを求める次回以後の要求に備えて、この新しいリストをサーバーの resourceObjectListCache にキャッシュします。
このメソッドは、現在認証されている管理者 (たとえば、subject) として実行されます。変数は、単一のリソース ID、または subject 文字列と既存のセッションを値としてとります。
このメソッドは、次の条件に応じて、異なる複数の変数をとります。
- メソッドが、単一のリソースを返すか、リソースリストを返すか。
- キャッシュをクリアする必要があるかどうか。
- メソッドが、セッション ID (ユーザーがすでに認証されている場合に実装される) を送信するか、主体を表す文字列 (subjectString) を送信するか。通常は、Session を使用します。
表 4-28 listResourceObjects のパラメータ
パラメータ
説明
s
有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。
resourceObjectType
この指定のリソースオブジェクトクラスのタイプ (たとえば、group) を指定します。NULL の場合は、すべてのオブジェクトタイプのオブジェクトが返されます。
resourceList
オブジェクトの取得元となるリソースのリスト。
options
検索の制限に使用される、リソースに固有の名前と値のペアを指定します。
cacheList
このメソッドが各リソースで listResourceObjects メソッドを呼び出すときに作成される、サーバーの resourceObjectListCache に格納される新しいリストを指定します。キャッシュへの格納後、結果リストのマージ、ソート、および重複削除が行われます。
clearCacheIfExists
メソッドがリソースオブジェクトのリストを取得したあとで、サーバーの resourceObjectListCache 内のキャッシュをクリアするかどうかを指定します。
戻り値
このメソッドは、リソースのリスト (ID または名前の resourceList) から、指定されたリソースオブジェクトタイプのリソースオブジェクト名のリストを返します。
testObject メソッド
testObject(LighthouseContext s,
String typeName,
String id)
説明
主体がオブジェクトの表示を認証されていない場合でも、指定したオブジェクトが存在するかどうかを確認します。ツリー全体を表示できない管理者がユーザーの新規作成プロセスを開始するときは、このメソッドを使用して、重複オブジェクトの作成を防止してください。
表 4-29 testObject のパラメータ
パラメータ
説明
s
有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。
typeName
メソッドによって検証されるオブジェクトのタイプを指定します。
id
名前または ID を入力して、オブジェクトを指定します。ID を指定した場合は、typeName の値は無視されます。このパラメータを NULL にすることはできません。
戻り値
このメソッドが返す値は次のとおりです。
true - オブジェクトが存在する
null - オブジェクトは存在しない
testUser メソッド
testUser(LighthouseContext s,
String id)
説明
主体がオブジェクトの表示を認証されていない場合でも、指定したユーザーが存在するかどうかを確認します。ツリー全体を表示できない管理者がユーザーの新規作成プロセスを開始するときは、このメソッドを使用して、重複オブジェクトの作成を防止してください。
表 4-30 testUser のパラメータ
パラメータ
説明
s
有効な Identity Manager セッションを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。
id
名前または ID を入力して、ユーザーを指定します。このパラメータを NULL にすることはできません。
戻り値
このメソッドが返す値は次のとおりです。
true - ユーザーが存在する
null - ユーザーは存在しない
hasCapability メソッド
hasCapability(LighthouseContext s, String capability)
throws WavesetException {
説明
ユーザーが指定された機能 (文字列) を持つかどうかを確認します。このメソッドは、直接割り当てられている機能、または AdminGroups、AdminRoles、またはその両方によって間接的に割り当てられている機能を調べます。session の値が必要です。
表 4-31 hasCapability のパラメータ
パラメータ
説明
s
有効な Identity Manager コンテキストを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。
capabilities
クエリー対象となる機能を指定します。
戻り値
true - 現在認証されている Identity Manager ユーザーが、指定された機能を持つことを意味します。
false - 現在のユーザーが、指定された機能を持たないことを意味します。
hasCapabilities メソッド
hasCapabilities(LighthouseContext s, List capabilities)
throws WavesetException {
説明
ユーザーが、指定された機能 (文字列) のリストを持つかどうかを確認します。これらの機能は、直接割り当てるか、AdminGroups、AdminRoles、またはその両方を使用して間接的に割り当てることができます。session の値が必要です。
表 4-32 hasCapabilities のパラメータ
パラメータ
説明
s
有効な Identity Manager コンテキストを識別します。通常は、<ref>:display.session</ref> という形式で参照されます。
capabilities
クエリー対象となる機能のリストを指定します。
戻り値
true - 現在認証されている Identity Manager ユーザーが、指定されたすべての機能を持つことを意味します。
false - ユーザーが、指定されているすべての機能を持たないことを意味します。
追加オプション
FormUtil メソッドのサブセットでは、次のオプションが使用されます。
scopingOrg
ユーザーに複数の AdminRoles が割り当てられている場合に使用されます。値には、組織名を指定します。この値は、scopingOrg 組織を制御する、また、ログイン中のユーザーに割り当てられている AdminRole によって制御される組織が使用できる名前のみを返すように指定します。
このオプションは、通常、ユーザーが別のユーザーを作成または編集するときに割り当てる名前 (たとえば、Resourcenames) が、必ず編集対象ユーザーが属す組織に適した名前となるようにするために使用されます。
scopingOrg パラメータの使用
次のような状況では、この属性を設定します。
たとえば、管理者に Engineering AdminRole と Marketing AdminRole が割り当てられ、その管理者が Engineering 組織に属すユーザーを編集する場合、そのユーザーに割り当てることができるリソースは、Engineering AdminRole によって制御される組織で使用できるリソースに制限されます。
scopingOrg 属性の実装
前述の動作を実装するには、ユーザーフォームの waveset.resources フィールドに scopingOrg 属性を追加します。
現在の組織で使用できる値を参照する方法は次のとおりです。
<Field name='waveset.resources'>
<Display class='MultiSelect'>
<Property name='title' value='_FM_PRIVATE_RESOURCES'/>
<Property name='availableTitle'
value='_FM_AVAILABLE_RESOURCES'/>
<Property name='selectedTitle' value='_FM_SELECTED_RESOURCES'/>
<Property name='allowedValues'>
<invoke class='com.waveset.ui.FormUtil'
name='getUnassignedResources'>
<ref>:display.session</ref>
<map>
<s>currentRoles</s>
<ref>waveset.roles</ref>
<s>currentResourceGroups</s>
<ref>waveset.applications</ref>
<s>current</s>
<ref>waveset.original.resources</ref>
<s>scopingOrg</s>
<ref>waveset.organization</ref>
</map>
</invoke>
</Property>
</Display>
</Field>
current
返される値とマージされる名前のリストを指定します。たとえば、選択されたすべての名前が必ず複数選択リストから選択できるようにするときは、通常、MultiSelect フィールドで選択される名前のリストを指定します。
conditions
この値は、3 つの方法で指定できます。
表 4-33 conditions 属性の値
値の形式
説明
Map
<MapEntry> キーは、このタイプのオブジェクトがクエリーできる属性の名前で、2 番目は、関連付けられているクエリー可能属性を取得するために必要な、このタイプのオブジェクトの値です (演算子は「equals」と見なされる)。属性名と値の複数のペアを指定した場合は、それらは論理 and で連結されます。
例
<Map>
<MapEntry key='memberObjectGroups' value='Top'/>
</Map>
map
最初のエントリは、このオブジェクトタイプがサポートする、クエリー可能な属性の名前です。2 番目のエントリは、関連付けられているクエリー可能属性を取得するために必要な、このタイプのオブジェクトの値です (演算子は「equals」と見なされる)。
属性名と値の複数のペアを指定した場合は、それらは論理 and で連結されます。
例
<map>
<s>memberObjectGroups</s>
<ref>waveset.organizations</ref>
</map>
list
AttributeCondition オブジェクトを一覧表示します。複数の AttributeCondition を指定した場合は、それらは論理 and で連結されます。
例
<list>
<newclass= 'com.waveset.object.AttributeCondition'>
<s>MemberObjectGroups</s>
<s>equals</s>
<ref>waveset.organization</ref>
</new>
</list>
conditions 属性の使用
オブジェクトタイプに固有の、1 つまたは複数のクエリー属性条件のリストを指定して、特定の FormUtil メソッドから返される名前のリストをフィルタリングできます。これらのメソッドには、引数として options マップを受け付けるメソッドが含まれます。これらのクエリー属性条件を、conditions をキーとしたクエリーオプションとして指定することができます。オプションの値にはマップ、または AttributeConditions のリストを指定できます。
例: condition 属性による名前のフィルタリング
次の例は、conditions 属性を使用して、オプションマップを引数として受け付ける FormUtil メソッドから返される名前のリストに、追加のフィルタを適用する方法を示しています。
例 1
<Field name='waveset.resources'>
<Display class='MultiSelect' action='true'>
...
<Property name='allowedValues'>
<invoke class='com.waveset.ui.FormUtil'
name='getUnassignedResources'>
<ref>:display.session</ref>
<map>
<s>currentRoles</s>
<ref>waveset.roles</ref>
<s>currentResourceGroups</s>
<ref>waveset.applications</ref>
<s>current</s>
<ref>waveset.original.resources</ref>
<s>conditions</s>
<map>
<s>supportsContainerObjectTypes</s>
<s>true</s>
<s>type</s>
<s>LDAP</s>
</map>
</map>
</invoke>
</Property>
</Display>
</Field>
例 2
<Field name='orgResource'>
<Display class='Select' action='true'>
...
<Property name='allowedValues'>
<invoke class='com.waveset.ui.FormUtil'
name='getResourcesSupportingContainerObjectTypes'>
<ref>:display.session</ref>
<map>
<s>conditions</s>
<list>
<new class='com.waveset.object.AttributeCondition'>
<s>name</s>
<s>starts with</s>
<s>ldap</s>
</new>
</list>
</map>
</invoke>
</Property>
</Display>
</Field>
例 3
<Field name='accounts[Lighthouse].capabilities'>
<Display class='MultiSelect'>
...
<Property name='allowedValues'>
<invoke class='com.waveset.ui.FormUtil'
name='getUnassignedCapabilities'>
<ref>:display.session</ref>
<ref>waveset.original.capabilities</ref>
<map>
<s>conditions</s>
<list>
<new class='com.waveset.object.AttributeCondition'>
<s>name</s>
<s>starts with</s>
<s>bulk</s>
</new>
</list>
</map>
</invoke>
</Property>
</Display>
</Field>
サポートされるクエリー可能属性の名前
サポートされるクエリー可能属性の名前は、オブジェクトタイプごとに次のように分類されます。
上記以外のクエリー可能属性の名前は UIConfig.xml に定義されます (たとえば、firstname と lastname)。
表 4-34 すべてのオブジェクトタイプ
クエリー可能な属性
説明
authType
該当する場合に、認証タイプを指定します (たとえば、Configuration や Rule などのタイプ)
id
このオブジェクトのリポジトリ ID を指定します
name
このオブジェクトの名前を指定します
memberObjectGroups
このオブジェクトにアクセスできる、またはこのオブジェクトが属す ObjectGroups を指定します
表 4-35 Account
クエリー可能な属性
説明
accountId
リソースの accountId を指定します
accountExists
アカウントが存在するかどうかを指定します (true|false)
disabled
アカウントが無効化されているかどうかを指定します (true|false)
discoveredSituation
調整中に検出された初期状態を指定します。この状態は、confirmed と deleted が含まれます。
owner
このユーザーのリポジトリ ID を指定します (表示名は userid)
nativeGUID
リソースがこの属性をサポートする場合に、アカウントの GUID を指定します
resource
リソース名を指定します
resourceId
このリソースのリポジトリ ID を指定します (表示名は resource)
situation
検出された状況に応答が適用されたあとの、アカウントの状態を指定します。この状態は、confirmed、missing、deleted が含まれます。
situationChanged
状況が最後に変更された日時を指定します。
typeString
リソースタイプを指定します (たとえば、LDAP)
userid
このアカウントが割り当てられている Identity Manager ユーザーを一意に指定します
表 4-36 AdminGroup
クエリー可能な属性
説明
hidden
AdminGroup を非表示にするかどうかを指定します
memberAdminGroups
この AdminGroup に直接割り当てられる AdminGroups を一覧表示します
表 4-37 AdminRole
クエリー可能な属性
説明
controlledObjectGroups
この AdminRole によって制御される ObjectGroups を一覧表示します
memberAdminGroups
この AdminRole に割り当てられている AdminGroups を一覧表示します
adminGroupsRule
機能規則の名前を指定します
controlledObjectGroupsRule
制御される組織規則の名前を指定します
表 4-38 Configuration
クエリー可能な属性
説明
configType
設定を拡張するクラスの Java クラス名を指定します (たとえば、UserUIConfig、UserForm)
表 4-42 ObjectGroup
クエリー可能な属性
説明
directoryJunction
ObjectGroup がディレクトリジャンクションであるかどうかを指定します
(true|false)
displayName
オブジェクトグループのユーザーの、判読可能な名前を指定します
表 4-43 Policy
クエリー可能な属性
説明
class
このポリシーを実装する Java クラスを指定します (たとえば、StringQualityPolicy)
typeString
ポリシーのタイプを指定します (たとえば、password または accountId)
表 4-44 Resource
クエリー可能な属性
説明
startupType
startupType を指定します。これには、disabled と automatic があります
supportsContainerObjectTypes
このリソースが、コンテナオブジェクトタイプをサポートするかどうかを指定します (true|false)
supportedObjectTypes
サポートされるオブジェクトタイプを指定します (たとえば、group、ou、o、domain)
supportsScanning
このリソースがスキャンをサポートするかどうかを指定します
(true|false)
syncSource
このリソースを Active Sync リソースにすることができるかどうかを指定します
(true|false)
type
リソースタイプを指定します (たとえば、LDAP、AIX、RACF)
表 4-45 Role
クエリー可能な属性
説明
role_resources
ロールに割り当てられているリソースを一覧表示します
role_approvers
ロールに割り当てられている承認者を一覧表示します
表 4-46 WorkItem
クエリー可能な属性
説明
dirty
itemType
作業項目のタイプを指定します (たとえば、approval または wizard)
owner
この作業項目の所有ユーザーを指定します
taskid
この作業項目を作成したタスクインスタンスのリポジトリ ID を指定します
表 4-47 User
クエリー可能な属性
説明
adminRoles
このユーザーに割り当てられている AdminRoles のリストを指定します
controlledObjectGroups
このユーザーによって制御されるすべての ObjectGroups を一覧表示します (平常化された文字列)
correlationKey
一括読み込み時にユーザーを識別するためのキーを指定します
dis
現在の無効化状態を表す整数を指定します
0 は、アカウントなしを表します
1 は、一部が無効化されていることを表します
2 は、すべてが無効化されていることを表します
lhdis
Identity Manager ユーザーが無効化されているかどうかを指定します (true|false)
memberAdminGroups
このユーザーに割り当てられている AdminGroups を一覧表示します (平常化された文字列)
prov
現在のプロビジョニング状態を表す整数を指定します
1 は、更新が必要であることを表します
2 は、正常 (OK) 状態を表します
resourceAccountGuids
このユーザーに割り当てられているリソースアカウントの GUID を一覧表示します (accountGUID@resourceId)
resourceAccountIds
このユーザーに割り当てられているリソースアカウントの ID を一覧表示します (accountId@resourceId)
role
このユーザーに割り当てられているロールを一覧表示します
user_resources
このユーザーに割り当てられているリソースを一覧表示します
サポートされる演算子
- equals または is
- notEquals または is not
- greaterThan または greater than
- greaterThanOrEqualTo または not less than
- lessThan または less than
- lessThanOrEqualTo または not greater than
- startsWith または starts with
- endsWith または ends with
- contains または contains'
- isPresent または exists
- notPresent'
- isOneOf または is one of'
- containsAll