2016-04-25 13 views
0

I Dokument löschen versuchen, wo die Bedingungen sind ...setCanDeleteDocuments() Lotus Notes ACL

Wenn der Benutzer in der Gruppe und mit den Löschrechte & alle Benutzer in der Gruppe in der Lage, das Dokument zu löschen.

Aber Problem ist, wenn, wenn der Name, den ich spezifiziere, auch ausdrücklich in der ACL aufgeführt ist und keine Löschrechte hat. Dann überprüft es nicht die Gruppenrechte, die genug ist.

Dafür versuche ich, die Löschrechte für diejenigen Benutzer, die in der Gruppe sind, durch den unten angegebenen Code zu geben.

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(); 
} 
} 

Wo es zeigt Fehler wie, Ausnahme aufgetreten Methode NotesACL.save() null aufrufen.

Auch explizit hinzugefügt Benutzer hat Benutzer Typ = Person & Access = Manager in ACL.

Gibt es eine andere Möglichkeit, dies zu tun?

Jede Hilfe wäre willkommen. Vielen Dank im Voraus.

Antwort

3

Wenn Sie database als Startpunkt verwenden, erhalten Sie die Datenbank als Benutzer. Sofern der Benutzer nicht bereits Manager-Zugriff auf die Datenbank hat, schlägt dies fehl, da der Benutzer keinen Zugriff auf die Aktualisierung der ACL hat.

Sie können sessionAsSigner verwenden, aber bedenken Sie, dass Sie die Methode getCurrentDatabase() nicht verwenden können. Stattdessen müssen Sie die Methode getDatabase(server,filePath) verwenden, um die Datenbank mit der Unterzeichnerberechtigung zu erhalten. Offensichtlich benötigt der Unterzeichner auch Rechte zum Ändern der ACL.

Verwandte Themen