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

Возвращает пустое значение 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> 
+0

Просто рассмотрел код и он работает отлично. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^