setCanDeleteDocuments()Lotus Notes ACL

时间:2016-04-25 11:23:24

标签: xpages lotus-notes acl

我正在尝试删除文档,条件是......

用户在群组中并具有删除权限&组中的每个用户都可以删除该文档。

但问题是,如果我指定的名称也在ACL中明确列出并且没有删除权限。那么它不会检查组权限是否公平。

为此,我试图通过下面给出的代码向那些在组中的用户提供删除权限。

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时发生异常。

即使明确添加的用户也有用户类型= person& Access = ACL中的Manager。

有没有其他方法可以做到这一点?

任何帮助将不胜感激。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

使用Name作为起点意味着您将以用户身份获取数据库。除非用户已具有对数据库的Manager访问权限,否则将失败,因为用户无权更新ACL。

您可以使用database,但请记住,您无法使用sessionAsSigner方法。相反,您必须使用getCurrentDatabase()方法才能获得具有签名者权限的数据库。显然,签名者还需要修改ACL的权利。