intra-mart Accel Documents プログラミングガイド 第7版 2018-04-01

ドロワ作成

概要

ドロワの作成方法について記載します。

サンプルプログラム

サンプル会社(comp_sample_01)に書き込み権があるドロワを作成するサンプルコードを記載します。

注意

ドロワを作成する場合は、セッションの管理者モードを有効にする必要があります。
管理者モードについては、 intra-mart Accel Documents へのアクセス を参照してください。
// 作成時に設定する属性値を指定します。
Map<AttributeId, Object> attributeMap = new HashMap<AttributeId, Object>();
// 名前属性の値を指定します。
attributeMap.put(KnSystemSchemas.OBJECT_NAME_ATTRIBUTE_ID, " sample drawer");

// 作成時に設定するアクセス権を指定します。
Map<UgId, Set<Permission>> acl = new HashMap<UgId, Set<Permission>>();
// アクセス権を追加する組織(サンプル会社)のUgIdを生成します。
UgId ugId = KnUgIdUtil.getDepartmentUgId(
        "comp_sample_01", "comp_sample_01", "comp_sample_01");
// 書き込み権にあたるパーミッションセットを作成します。
Set<Permission> writePermissions =
        Collections.unmodifiableSet(new HashSet<Permission>(Arrays.asList(
                KnPermissions.READ_ATTRIBUTES,
                KnPermissions.WRITE_ATTRIBUTES, KnPermissions.READ_ACL,
                KnPermissions.READ_VERSIONS, KnPermissions.CREATE_VERSIONS,
                KnPermissions.READ_INHERITED_ACL,
                KnPermissions.READ_CHILDREN, KnPermissions.ADD_CHILDREN,
                KnPermissions.REMOVE_CHILDREN, KnPermissions.READ_CONTENTS,
                KnPermissions.LOCK)));
// サンプル会社に書き込み権を付与します。
acl.put(ugId, writePermissions);

// 作成時に設定する継承ACLとして空のMapを指定します。
Map<UgId, Set<Permission>> inheritedAcl = new HashMap<UgId, Set<Permission>>();

// 属性、アクセス権、継承ACLを指定してドロワを作成します。
ObjectId drawerId = session.createPublicDrawer(attributeMap, acl, inheritedAcl);

// フォルダ/文書作成者に管理権を付与する場合は、次の設定をします。
session.setObjectCreatorPermissionsForDrawer(drawerId, KnPermissions.ALL_PERMISSIONS);

コラム

サンプルコード中に出現するsessionはKnSessionを表します。
KnSessionの取得/生成方法は、 intra-mart Accel Documents へのアクセス を参照してください。

コラム

ドロワ作成時に指定できる継承ACLとは、ドロワ配下のフォルダ/文書に対して適用される共通のアクセス権です。
継承ACLが設定されている場合、継承ACLとフォルダ/文書のアクセス権の論理和でアクセス権が評価されます。

注意

intra-mart Accel Documents アプリケーションでは継承ACLを使用していません。
そのため、intra-mart Accel Documents アプリケーションでは、上記のサンプルと同様に継承ACLに空のMapを
指定してドロワを作成しています。
APIを使って作成したドロワをintra-mart Accel Documents アプリケーションで利用する場合は、
継承ACLに空のMapを指定することを推奨します。