Xpages - Dominoview return 如果用户在 getRoles() 中则所有值

Xpages - Dominoview return all values if user in getRoles()

下面的代码过滤视图中的数据。

else 语句工作正常,它基本上是特定用户的 returns 值,但 if 语句是问题所在;因为我希望管理员用户能够从数据库中查看所有 views/records。

虽然 if 语句有效,但它只对第一个用户 returns views/records,但如果用户具有 Role( '[管理员]').

我们将不胜感激您的帮助!

<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>

Return return "" [管理员] 人员的空值。这不会设置键 属性 并传送视图中的所有条目。

您的代码将如下所示:

<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>