1

下面的代碼過濾視圖中的數據。Xpages - Dominoview返回所有值,如果用戶在getRoles()

else語句工作正常,它基本上返回特定用戶的值,但if語句是問題出在哪裏;因爲我希望管理員用戶能夠查看數據庫中的所有視圖/記錄。

雖然if語句有效,但它只返回第一個用戶的視圖/記錄,但如果用戶具有角色('[Admin]'),我希望它爲所有用戶返回視圖。

您的幫助將不勝感激!

<xp:dominoView var="users" viewName="userView" keysExactMatch="true"> 
    <xp:this.keys><![CDATA[#{javascript:var fullName = context.getUser().getFullName(); 
    var users:NotesView = database.getView("userView"); 
    var entryCol:NotesViewEntryCollection = users.getAllEntries(); 
    var doc:NotesDocument = users.getFirstDocument(); 
    var columnValues = []; 
    while(doc != null){ 
     columnValues.push(doc.getItemValueString("CreatedBy")); 
     doc = entryCol.getNextEntry(); 
    } 
    if(context.getUser().getRoles().contains('[Admin]')){ 
     print(columnValues); 
     return columnValues; 

    }else{ 
    return fullName; 
    }}]]></xp:this.keys> 
</xp:dominoView> 

回答

1

爲[Admin]人返回空值return ""。這不會設置keys屬性並傳遞所有條目。

您的代碼應該是這樣的,那麼:

<xp:dominoView var="users" viewName="userView" keysExactMatch="true"> 
    <xp:this.keys><![CDATA[#{javascript: 
     if(context.getUser().getRoles().contains('[Admin]')){ 
      return ""; 
     } else { 
      return context.getUser().getFullName(); 
     } 
    }]]></xp:this.keys> 
</xp:dominoView> 
+0

只是審查代碼,它工作正常。謝謝! –