如何在liferay中获取用户站点角色

Vin*_*nod 2 hook liferay liferay-6 liferay-theme

我想知道为用户分配的站点角色名称列表。所以我尝试如下,

List<Role> userRolesList = RoleLocalServiceUtil.getUserRoles(userid);
                if (userRolesList != null) {
            for (Role role : userRolesList) {  
                    System.out.println("rolesID:"+ role.getTypeLabel());
                }
            }
Run Code Online (Sandbox Code Playgroud)

我只能看到用户常规类型的角色。不是网站类型。但在我的情况下,用户是站点管理员。那么如何使用 api 调用获取用户站点角色名称?

Par*_*mar 5

RoleLocalServiceUtil只会返回您的常规角色。要获得组/站点角色,你需要使用getUserGroupRoles(long userId, long groupId)UserGroupRoleLocalServiceUtil如下:

List<UserGroupRole> userGroupRoleList =
    UserGroupRoleLocalServiceUtil.getUserGroupRoles(userId, groupId);
    if (userGroupRoleList != null) {
    for (UserGroupRole userGroupRole : userGroupRoleList) {
        /* Get Role object based on userGroupRole.getRoleId() */
        Role role = RoleLocalServiceUtil.getRole(userGroupRole.getRoleId());
        System.out.println("roleId : " + role.getRoleId());
        System.out.println("roleName : " + role.getName());
    }
}
Run Code Online (Sandbox Code Playgroud)