我正在尝试使用 CPE API 从 FileNet 中文档的安全性中删除/添加组。我可以删除没有任何问题。但是,当我尝试通过从文档类继承来添加缺少的组时,会在没有完全权限的情况下添加组。例如,我删除了“作者”组,当我尝试重新添加相同的组时,它没有所有权限。
删除组:
AccessPermissionList apl = doc.get_Permissions();
Iterator iter = apl.iterator();
while (iter.hasNext())
{
AccessPermission ap = (AccessPermission)iter.next();
if(ap.get_GranteeName().contains("group name")){
iter.remove();
}
}
doc.set_Permissions(apl);
doc.save(RefreshMode.NO_REFRESH);
添加组:
DocumentClassDefinition docClassDef = Factory.DocumentClassDefinition.fetchInstance(os, classID, null);
AccessPermissionList docClassApl = docClassDef.get_Permissions();
Iterator docClassApliter = docClassApl.iterator();
for(Object obj : docClassApl)
{
AccessPermission ap = (AccessPermission)obj;
if(!apl.contains(ap)){
apl.add(ap);
}
}
doc.set_Permissions(apl);
doc.save(RefreshMode.NO_REFRESH);
已解决: 必须使用 DefaultInstanceSecurity 而不是常规安全性,因为两个实例中的权限不同。所以刚刚更新了以下代码行:
AccessPermissionList docClassApl = docClassDef.get_DefaultInstancePermissions();