以下代码过滤视图中的数据。
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>
答案 0 :(得分:1)
为[管理员]人员返回空值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>