我试着删除文件,条件是.
如果用户在组中并具有删除权限&组中的每个用户都能够删除文档。
但问题是,如果我指定的名称也在ACL中显式列出,并且没有删除rights.Then,那么它就没有检查组权限,这是相当公平的。
为此,我试图将删除权限授予按以下代码分组的用户。
var acl:NotesACL=database.getACL();
var entry:NotesACLEntry=acl.getFirstEntry();
if(entry!=null)
{
var user:NotesACLEntry=acl.getEntry(@UserName());
if(user.isCanDeleteDocuments()==false)
{
user.setCanDeleteDocuments(true);
acl.save();
}
}在显示类似错误的地方,出现了调用方法NotesACL.save() null的异常。
即使是显式添加的用户,也在ACL中拥有用户type=person & Access=管理器。
还有别的办法吗?
任何帮助都将不胜感激。提前谢谢。
发布于 2016-04-25 11:29:48
使用database作为起点意味着您将以用户身份获得数据库。除非用户已经拥有Manager访问数据库的权限,否则这将失败,因为用户没有更新ACL的权限。
您可以使用sessionAsSigner,但请记住,您不能使用getCurrentDatabase()方法。相反,您必须使用getDatabase(server,filePath)方法来获得具有签名者权限的数据库。显然,签名者还需要修改ACL的权限。
https://stackoverflow.com/questions/36839154
复制相似问题