public final class DataRole
extends java.lang.Object
データロールは、データへのアクセス権限を管理するクラスです。
データロール情報は、データロールマスタ(GEA06)で管理されます。
あるユーザーのデータロール情報に対してひもつくデータロールマスタの
カラム、条件値、条件式の一覧に対して、カラム単位に条件式を構築します。
このクラスでは、インスタンス作成時にデータロールマスタのDBを直接検索しています。
このため、データ変更時の変更内容を次回ログイン時から反映させるため、
自身のオブジェクトキャッシュは保持していません。
また、各条件式について、1つのカラムに対して複数の条件式が適用される場合、
条件式が"="または"LIKE"だけの場合は、"OR"結合されます。
"!="及び"NOT LIKE"条件が1つでも含まれる場合は、"AND"結合されます。
データロールがNULLの場合、全データへのアクセス可能となり、条件式としては、
"LIKE '%'" が付加されます。
また、'--'の場合、全データへのアクセスが不可能となり、条件式としては、
"NOT LIKE '%'" が付加されます。
ユーザーのデータロールが指定されているにも関わらず、データロールの検索ができない
場合は、全禁止になります。
検索条件を取得する際に、テーブル名又は、テーブル名の別名が指定された場合、
条件の取得する際には、テーブル名は無視されますが、返される条件には、テーブル名
は付加された状態になります。
例)
ABC(=) BCD(=) ⇒ (CLM = 'ABC' or CLM = 'BCD' )
ABC(=) BCD(LIKE) ⇒ (CLM = 'ABC' or CLM like 'BCD%' )
ABC(=) BCD(!=) ⇒ (CLM = 'ABC' and CLM != 'BCD' )
ABC(LIKE) BCD(LIKE) ⇒ (CLM like 'ABC%' or CLM like 'BCD%' )
ABC(LIKE) BCD(!=) ⇒ (CLM like 'ABC%' and CLM != 'BCD' )
ABC(LIKE) BCD(!=) ⇒ (CLM != 'ABC' and CLM != 'BCD' )
ABC(=) BCD(=) ⇒ (A.CLM = 'ABC' or A.CLM = 'BCD' ) ※ {@SEC.A.CLM}でアクセス| 4.4.0.0 (2009/08/02) 新規作成 |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
java.lang.String |
getCondition(java.lang.String clm)
ロールズを返します。
|
java.lang.String |
getDataRoles()
ロールズを返します。
|
static DataRole |
newInstance(java.lang.String droles,
java.lang.String systemId,
ApplicationInfo appInfo)
ロール文字列から、データロールマスタ(GEA05)を検索し、カラム単位の
条件式を生成します。
|
java.lang.String |
toString()
オブジェクトの識別子として,詳細なユーザー情報を返します。
|
public static DataRole newInstance(java.lang.String droles, java.lang.String systemId, ApplicationInfo appInfo)
droles - "|"で区切られた データロール文字列systemId - システムIDappInfo - 接続情報public java.lang.String getDataRoles()
public java.lang.String getCondition(java.lang.String clm)
clm - カラム名| 4.4.0.1 (2009/08/08) テーブルIDが付加されている場合の条件を追加 |
public java.lang.String toString()
toString クラス内 java.lang.ObjectWebアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.