2015-05-12 2 views
2

Это странно.XPages: context.getUser(). GetRoles() работает спорадически

Я вошел сюда в качестве администратора Mustermann, но когда я пытаюсь определить роли пользователя, я ничего не получаю:

current user: 
<xp:text 
    escape="true" 
    id="computedField4" 
    value="#{javascript:context.getUser()}"> 
</xp:text> 
roles: 
    <xp:text 
    escape="true" 
    id="computedField5" 
    value="#{javascript:context.getUser().getRoles()}"> 
</xp:text> 

enter image description here

И если я открываю XPages Debug Toolbar, это говорит мне, что я не знаю.

enter image description here

Это мой ACL, который подтверждает Администратор Mustermann должен иметь по крайней мере три роли:

enter image description here

Я в тупик.

+0

У вас нет ролей, потому что вы анонимны. Вы должны понять, почему, и ваши роли будут отображаться. Странно, что ваше приложение показывает, что вы вошли в систему. Какой там код? –

+0

код для отображения текущего пользователя - это ssjs, который я разместил выше. Приведенный выше код представляет собой макет приложения с userTreeNode и loginTreeNode –

ответ

5

Я предпочел бы использовать database.queryAccessRoles(session.getEffectiveUserName()) вместо использования контекста.

Я создал компонент для получения много ACL и информаций пользователя в качестве сниппета: http://openntf.org/XSnippets.nsf/snippet.xsp?id=sysinfouser-acl-info-custom-control-java-bean

+0

да, который работает. Любая идея, почему панель инструментов XPages отображается неправильно? Мне нужно что-то обновить? –

+1

Не знаю, может быть, спросите Марка Леусинка, как это работает - или посмотрите в источниках, как это делается. Возможно, это и контекст. –

+0

Отличный совет Оливер! Думаю, я тоже начну использовать это вместо этого. –

1

Как ни странно, @UserRoles является более надежным. Попробуйте использовать вместо этого:

roles: 
    <xp:text 
    escape="true" 
    id="computedField5" 
    value="#{javascript:session.evaluate("@UserRoles");}"> 
</xp:text> 

У нас была проблема с context.getUser() getRoles() сбиваться при использовании XPages в клиенте Notes на локальный, когда он не отключен.. Вы можете каким-либо образом перенастроить свой документ местоположения, чтобы этого избежать, но я никогда не думал об этом. Использование старого языка формул языка было предложено во время PMR, и оно работает, даже если софинансирование, как и мое, неверно.

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