[英]How to check if a certain user has reader-access to a document
對於使用Java Bean的xpage應用程序,我需要檢查某個用戶(不是當前用戶)是否具有讀者對文檔的訪問權限。 上面的所有訪問級別(數據庫ACL,XPage ACL ...)都可以視為理所當然。 當前用戶始終至少是作者。
每個文檔都有一個讀者字段“ readers”和三個authorfields“ creator”,“ authors”,“ AdminAuthor”,由於每個文檔始終只包含“ [Admin]”,因此最后一個可以忽略
當前的想法是獲得此處顯示的用戶組( 確定已定義用戶的所有組 ),循環遍歷並與“讀者”和“作者”字段進行比較
為什么我不喜歡它:
有什么更好的辦法嗎? 尤其是考慮到嵌套組,因此$ ServerAccess視圖並不是真正的選擇。
當前代碼:
public boolean isReader(String notesName, String documentID){
try {
Vector<String> readers= getAllReaderFieldsValues(documentID);
if(readers.contains(notesName)){
return true;
}
lotus.notes.addins.DominoServer server = new lotus.notes.addins.DominoServer(DominoUtils.getCurrentSession().getServerName());
for(String group:(Vector<String>)server.getNamesList(notesName)){
if (readers.contains(group)){
return true;
}
}
} catch (NotesException e) {
//ErrorHandling
}
return false;
}
謝謝你的幫助
有多種檢查用戶是否有權訪問文檔的方法,但是所有這些方法都沒有文檔記錄(但十年以來仍然可用),因此它們不符合您的要求(即在不同的用戶上下文或特殊視圖中運行)帶有“ $ C1 $”列,...)
如果您的名字不在列表中,則將其添加到閱讀器字段中是一種“已記錄”的操作方式,它只是將用戶添加到閱讀器字段中。 無需檢查用戶是否具有訪問權限。
我仍然想知道您的情況,因為我不明白您要實現的目的:您正在檢查用戶是否在特定的組中,該組可以授予他對文檔的訪問權限。 如果用戶屬於這些組之一,則跳過其名稱。 同時,該用戶已從該組中刪除,並且無法再訪問該文檔...
為什么不使用組或角色? 沒有編碼,只有管理。 您是否正在解決組織問題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.