Я пытаюсь удалить / добавить группы из безопасности документа в Fil eNet с использованием CPE API. Я могу удалить без каких-либо проблем. Однако, когда я пытаюсь добавить отсутствующие группы путем наследования от класса документа, группы добавляются без полных разрешений. Например, я удаляю группу «Автор» и при попытке добавить ту же группу обратно она не имеет всех разрешений.
Удалить группы:
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();