uCosminexus DocumentBroker Version 5 リファレンス API

[目次][用語][索引][前へ][次へ]

1.11.2 ローカルACLとACEの操作

ローカルACLは,文書管理オブジェクトのプロパティ(dbrProp_ACLプロパティ)として設定します。このプロパティは,VARRAY型のプロパティです。VARRAY型のプロパティの値である可変長配列は,パラメタクラスのDbjVArrayインターフェースで操作します。VARRAY型のプロパティの操作については,「1.10.7 文書管理オブジェクトのプロパティの操作」を参照してください。

可変長配列の要素であるACEは,パラメタクラスのDbjACEインターフェースで操作できます。

ローカルACLを文書管理オブジェクトのプロパティとして設定する流れは,次のようになります。

  1. DbjVArrayインターフェースを取得して,可変長配列を作成します。
  2. DbjACEインターフェースを取得して,ACEを作成し,値を設定します。
  3. ACEを,可変長配列の要素として追加します。
    設定するACEの数だけ,2.と3.を繰り返します。
  4. 可変長配列をプロパティ値集合(DbjPropSet)に設定します。
  5. プロパティ値集合を,文書管理オブジェクトにフラッシュします。

文書管理オブジェクトにローカルACLを設定する例を示します。

 
// 文書管理オブジェクトにローカルACLを設定する例
 
  // factory:DbjFactoryインターフェース
 
// 可変長配列を作成する
DbjVArray acl = factory.createVArray( null );
 
// 一つ目のACEを作成する
// (システムサブジェクトですべてのユーザに
//  参照更新権を設定する)
DbjACE elm = factory.createACE(factory.createPropSet());
elm.setSystemSubject( DbjDef.SYSSUBJECT_EVERYONE );
elm.setPermission( DbjDef.PERM_READ_WRITE );
 
// ACEをACLに追加する
acl.addPropSet( elm.propSet() );
 
// 二つ目のACEを作成する
// (ユーザhitachiにフルコントロールを設定する)
elm.setUserSubject( "hitachi" );
elm.setPermission( DbjDef.PERM_FULL_CONTROL );
 
// ACEをACLに追加する
acl.addPropSet( elm.propSet() );
 
// 可変長配列をプロパティ値集合に設定する
DbjPropSet props = factory.createPropSet();
props.setPropVal( "dbrProp_ACL", acl );
 
// プロパティ値集合を文書管理オブジェクトにフラッシュする
obj.writeProperties( props );