XPages:context.getUser()。getRoles()偶尔工作

时间:2015-05-12 12:52:13

标签: xpages

这很奇怪。

我已经以Admin 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

如果我打开我的XPage调试工具栏,它会告诉我我是匿名的。

enter image description here

这是我的ACL,证实了Admin Mustermann至少应该扮演三个角色:

enter image description here

我很难过。

2 个答案:

答案 0 :(得分:6)

我更愿意使用database.queryAccessRoles(session.getEffectiveUserName())而不是使用上下文。

我创建了一个bean,用于获取大量ACL和用户信息作为代码段:http://openntf.org/XSnippets.nsf/snippet.xsp?id=sysinfouser-acl-info-custom-control-java-bean

答案 1 :(得分:1)

奇怪的是,@ UserRoles更可靠。请尝试使用此代码:

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

我们遇到了context.getUser()。getRoles()在未连接时在本地Notes客户端中使用XPage时出现问题。您可以通过某种方式重新配置您的位置文档以避免这种情况,但我从未想过这一点。在PMR期间建议使用旧的公式语言,即使像我这样的硬币配置错误也可以使用。