【发布时间】:2018-10-01 09:46:29
【问题描述】:
当我想使用 openCMIS 方法 Acl removeAcl(List removeAces, AclPropagation aclPropagation) 删除单个用户的权限时遇到问题。
我有一个文档或文件夹有多个用户的权限,我只想删除单个用户的权限。
这是我用来删除用户的代码:
OperationContext operationContext = new OperationContextImpl();
operationContext.setIncludeAcls(true);
Folder testFolder = (Folder) session.getObject("72deb421-3b8e-4268-9987-9c59a19f4a13");
testFolder = (Folder) session.getObject(testDoc, operationContext);
List<String> permissions = new ArrayList<String>();
permissions.add("{http://www.alfresco.org/model/content/1.0}folder.Coordinator");
String principal = "peter.sts";
Ace aceIn = session.getObjectFactory().createAce(principal, permissions);
List<Ace> aceListIn = new ArrayList<Ace>();
aceListIn.add(aceIn);
testDoc.removeAcl(aceListIn, AclPropagation.REPOSITORYDETERMINED);
testDoc = (Folder) session.getObject(testDoc, operationContext);here
我让这个用户拥有与文件夹相关联的此权限并想要删除,但只有这个用户。
permissions.add("{http://www.alfresco.org/model/content/1.0}folder.Coordinator");
String principal = "peter.sts";
当我运行该方法时,所有与该文件夹相关的权限的用户都将被删除。
我做错了什么?
【问题讨论】:
-
您是否尝试过获取 ACL、从列表中删除 ACE 并将其重新设置?
-
我也做了测试,只删除与用户对应的 Ace,我想删除,但现在我知道我错了。我只是删除了用户的 Ace,并没有设置新的 Aces 列表。感谢 icrovett 和 Jeff 的帮助。