1

我们要检查 6.1.1 GA2 的 Liferay 主题,如果当前登录的用户有一个角色,例如“myRole”。

通过将用户添加到分配了该角色的组来定义角色并将其分配给用户。

当我在控制面板中检查用户角色时,该组在用户列表中正确显示为该用户。编辑用户,角色面板在“继承的角色”中显示分配的组。

在主题一个简单的

#set ($usrRoles = $user.getRoles())
#foreach( $usrRole in $usrRoles )
    <p>$usrRole.getName()</p>
#end

只返回直接分配的角色,而不是从组继承的角色。

是否有另一种方法来获得这些角色?或者这只是 Liferay 中的一个错误?

4

1 回答 1

2

如果您使用 liferay 用户组,您可以通过 UserGroupRoleLocalService 检索关联的角色。

在您之后添加此代码:

#set($userGroupRoleLocalService= $serviceLocator.findService("com.liferay.portal.service.UserGroupRoleLocalService"))

#set($ugUsrRoles = $userGroupRoleLocalService.getUserGroupRoles($user.getUserId()))

#foreach( $ugUsrRole in $ugUsrRoles )
    <p>$ugUsrRole.getRole().getName()</p>
#end

这是velocity中可用的所有liferay对象的有趣列表:Access Objects from Velocity

于 2013-09-25T21:49:36.067 回答