2016-04-25 165 views
0

我试图删除文件,那里的条件是......setCanDeleteDocuments()的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()无效。

即使明确添加的用户具有用户类型= person &访问= ACL中的管理器。

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

任何帮助,将不胜感激。 在此先感谢。

回答

3

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

您可以使用sessionAsSigner,但请记住,您不能使用getCurrentDatabase()方法。相反,您必须使用getDatabase(server,filePath)方法来获取具有签名者权限的数据库。很明显,签名者也需要修改ACL的权利。