2016-04-25 205 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的權利。