2013-03-22 49 views
0

我很確定這是不可能的,但我仍然會問。X頁面:正在搜索文檔我無權訪問

我正在構建一個處理病人記錄的系統。新用戶需要能夠搜索病人,並且一旦從管理員那裏發現對其文件的請求訪問權限。

即使用戶無法訪問它們,我如何顯示所有文檔的列表?他們只有在視圖添加到「讀者」字段後纔會出現在視圖中,這會影響搜索的目的。

我的計劃是創建2個文件 - 原來病人的文檔,幷包含名稱精簡文件,僅用於搜索

地址是否有這樣做的更好的方法,或者是2號文件接近去哪裏?

回答

4

使用sessionAsSigner獲取數據庫對象對數據庫簽名者的權限並在其上運行搜索。這將爲您提供可以通過使用數據表進行查看的可視化文檔集合。

例(中度意見的偉大工程 - 更大的那些可能是一些optymalization是必要的):

<xp:panel id="viewPanel" styleClass="usersPanel"> 
    <xp:this.dataContexts> 
     <xp:dataContext var="usersList"> 
      <xp:this.value><![CDATA[#{javascript:    
var uview = sessionAsSigner.getCurrentDatabase().getView("someView"); 
uview.FTSearch("Some query"); 
return uview.getAllEntries(); 
}]]></xp:this.value> 
     </xp:dataContext> 
    </xp:this.dataContexts> 
    <xp:pager partialRefresh="true" layout="Previous Group Next" 
     xp:key="headerPager" id="pager2" for="usersList"> 
    </xp:pager> 
    <xp:dataTable id="usersList" rows="30" 
     var="entry" value="#{usersList}"> 

     <xp:column id="column1"> 
      <xp:this.facets> 
       <xp:span xp:key="header" 
        styleClass="frameworkViewColumnHeader"> 
        Użytkownik 
       </xp:span> 
      </xp:this.facets> 
      <xp:text escape="true" id="computedField1" 
       value="#{javascript:entry.getColumnValues().get(0)}"> 
      </xp:text> 
     </xp:column> 
     <xp:column id="column2"> 
      <xp:this.facets> 
       <xp:span xp:key="header" 
        styleClass="frameworkViewColumnHeader"> 
        Instytucja 
       </xp:span> 
      </xp:this.facets> 
      <xp:text escape="true" id="computedField2" 
       value="#{javascript:entry.getColumnValues().get(1)}"> 
      </xp:text> 
     </xp:column> 
    </xp:dataTable> 
</xp:panel> 
+0

搜索後,將在用戶隨後可以訪問文件或將這款由ACL管轄像平常一樣? – brtweed 2013-03-22 10:42:15

+0

只有在搜索和數據表呈現時纔會授予簽名者權限。訪問文檔時,例如,他將嘗試打開它們將受到ACL – 2013-03-22 11:31:19

+0

的管理非常感謝。因此,該表的數據源將是 - sessionAsSigner.getDatabase(session.getServerName(),session.getCurrentDatabase()。getFilePath())。getView(「VIEW NAME」)? – brtweed 2013-03-22 12:02:42