사용자가 문서에 잠금을 설정할 수 있는지 확인하고 싶은 기능이 있습니다. 그렇다면 사용자가 문서를 편집 할 수 있음을 알고 있습니다.문서 잠금이 예상 값을 반환하지 않습니다.
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;
}
나는 다음과 같이 함수를 호출 : 때문에 잘못된 ("99DE330A432849AFC125803400313C73", "CN = 홍길동이/O = quintessens")
그러나이 있어야 뭔가 canWriteDocument을 때 ACL 저자와 사용자 (액세스 수준)이 Authors 유형의 필드에 표시되지 않으면 true를 반환합니다.
ACL 액세스 수준을 Reader로 낮추면 반환 값은 여전히 참입니다.
왜 이런 일이 일어날 수 있는지 설명 할 수 있습니까?
그는 "공공 문서를 쓰기"수 (그것은
queryAccess()
가 올바른 값을 반환하는 경우, 그것은 절대적으로해야 데이터베이스 잠금 옵션을 의미하지 않을 수 있도록, 다른 후드 액세스 작업을 확인하는 방법은 두 가지가. 가능성이 있습니다) ? –해당 Privilige를 활성화/비활성화하면 결과가 항상 true입니다. –