簡體   English   中英

如何檢查某個用戶是否具有讀者對文檔的訪問權限

[英]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]”,因此最后一個可以忽略

當前的想法是獲得此處顯示的用戶組( 確定已定義用戶的所有組 ),循環遍歷並與“讀者”和“作者”字段進行比較

為什么我不喜歡它:

  • 使用未記錄的API
  • 糟糕的表現

有什么更好的辦法嗎? 尤其是考慮到嵌套組,因此$ 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM