2013-03-22 5 views
0

나는 이것이 가능하지 않다고 확신하지만 어쨌든 물어볼 것이다.Xpages : 문서 검색 나는 접근 할 수 없다.

환자 기록을 처리하는 시스템을 구축 중입니다. 새로운 사용자는 환자를 검색 할 수 있어야하고 관리자로부터 파일에 대한 요청 액세스 권한을 찾았습니다.

사용자가 액세스 할 수없는 경우에도 모든 문서의 목록을 어떻게 표시합니까? 판독기 필드에 추가 된보기에만 표시되며 검색의 목적에 위배됩니다. 이 일을 더 나은 방법이 있나요 원래 환자 문서와 이름을 포함하는 벗겨 다운 문서를, 주소가

검색에만 사용하거나이 문서는 접근이다 -

내 계획은이 문서를 작성하는 것입니다 잘 했어?

답변

4

sessionAsSigner를 사용하여 데이터베이스 서명자의 권한으로 데이터베이스 개체를 가져 와서 검색을 실행합니다. 이렇게하면 데이터 테이블을 사용하여보기와 유사하게 시각화 할 수있는 문서 모음을 얻을 수 있습니다. 그런 다음 사용자가 문서에 액세스 할 수있는 것, 검색 후

<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이 적용된다 : -

예 (아마 optymalization가 필요하다 더 큰 것을 위해 적당한 전망 위대한 작품) 평소대로? – brtweed

+0

서명자 권한은 검색 및 데이터 테이블 렌더링 시간에만 부여됩니다. 예를 들어 그가 문서를 열려고 할 때 문서에 대한 액세스는 ACL –

+0

에 의해 관리됩니다. 감사드립니다. 따라서 테이블의 데이터 소스는 다음과 같습니다. - sessionAsSigner.getDatabase (session.getServerName(), session.getCurrentDatabase(). getFilePath()). getView ("VIEW NAME") ?? – brtweed

관련 문제