Ich habe eine Funktion, in der ich überprüfen möchte, ob ein Benutzer eine Sperre für das Dokument festlegen kann. Wenn ja, weiß ich, dass der Benutzer das Dokument bearbeiten kann.Dokumentensperre gibt keinen erwarteten Wert zurück
public boolean canWriteDocument(String docId, String userName) {
boolean canWrite = false;
Session session = null;
session = getCurrentSession();
try {
Database db = session.getDatabase("", this.activeDb);
if (db.isDocumentLockingEnabled()) {
//Document locking is enabled
Document doc = db.getDocumentByUNID(docId);
if (doc.lock(userName)) {
canWrite = true;
System.out.println("document can be locked by user");
doc.unlock();
} else {
System.out.println("document can NOT be locked by user");
}
} else {
//Document locking is NOT enabled
}
} catch (NotesException e) {
// fail silently
System.out.println("failure docLock");
//e.printStackTrace();
}
return canWrite;
}
nenne ich die Funktion wie folgt: canWriteDocument ("99DE330A432849AFC125803400313C73", "CN = John Doe/O = Quintessen")
Allerdings muss es da etwas nicht in Ordnung sein, wenn der Benutzer (mit ACL Autor Zugriffsebene) ist nicht im Feld vom Typ Autoren aufgeführt, es gibt true zurück.
Wenn ich die ACL-Zugriffsebene auf Reader herabsetze, ist der zurückgegebene Wert immer noch wahr.
Jeder kann erklären, warum das passiert?
Kann er „öffentliche Dokumente schreiben“ ? –
Wenn ich das Privilige aktiviere/deaktiviere, ist das Ergebnis immer wahr. –