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

如何在liferay中获取用户站点角色,liferay,hook,liferay-6,liferay-theme,Liferay,Hook,Liferay 6,Liferay Theme,我想知道为用户分配的站点角色名称列表。所以我试着如下 List<Role> userRolesList = RoleLocalServiceUtil.getUserRoles(userid); if (userRolesList != null) { for (Role role : userRolesList) { System.out.println("rolesID:"+ rol

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

List<Role> userRolesList = RoleLocalServiceUtil.getUserRoles(userid);
                if (userRolesList != null) {
            for (Role role : userRolesList) {  
                    System.out.println("rolesID:"+ role.getTypeLabel());
                }
            }
List userRolesList=RoleLocalServiceUtil.getUserRoles(userid);
if(userRolesList!=null){
对于(角色:userRolesList){
System.out.println(“rolesID:+role.getTypeLabel());
}
}

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

使用下面列出的com.liferay.portal.service.UserGroupRoleLocalServiceUtil.java的api方法

 UserGroupRoleLocalServiceUtil.getUserGroupRoles(
        long userId)

UserGroupRoleLocalServiceUtil.getUserGroupRoles(
        long userId, long groupId)
它返回UserGroupRole对象,您可以从中获取角色对象,从而获得角色名称


使用第一种方法可以获得分配给用户的所有站点角色,使用第二种方法可以获得分配给具有特定站点/组的用户的所有站点角色。

使用下面列出的com.liferay.portal.service.UserGroupRoleLocalServiceUtil.java api方法

 UserGroupRoleLocalServiceUtil.getUserGroupRoles(
        long userId)

UserGroupRoleLocalServiceUtil.getUserGroupRoles(
        long userId, long groupId)
它返回UserGroupRole对象,您可以从中获取角色对象,从而获得角色名称


使用第一种方法可以获得分配给用户的所有站点角色,使用第二种方法可以获得分配给具有特定站点/组的用户的所有站点角色。

RoleLocalServiceUtil
将仅返回常规角色。要获取组/站点角色,您需要使用
UserGroupRoleLocalServiceUtil
getUserGroupRoles(long userId,long groupId)
,如下所示:

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());
    }
}
列出用户组角色列表=
UserGroupRoleLocalServiceUtil.getUserGroupRoles(userId,groupId);
if(userGroupRoleList!=null){
for(UserGroupRole UserGroupRole:userGroupRoleList){
/*基于userGroupRole.getRoleId()获取角色对象*/
Role Role=RoleLocalServiceUtil.getRole(userGroupRole.getRoleId());
System.out.println(“roleId:+role.getRoleId());
System.out.println(“roleName:+role.getName());
}
}

RoleLocalServiceUtil
将仅返回常规角色。要获取组/站点角色,您需要使用
UserGroupRoleLocalServiceUtil
getUserGroupRoles(long userId,long groupId)
,如下所示:

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());
    }
}
列出用户组角色列表=
UserGroupRoleLocalServiceUtil.getUserGroupRoles(userId,groupId);
if(userGroupRoleList!=null){
for(UserGroupRole UserGroupRole:userGroupRoleList){
/*基于userGroupRole.getRoleId()获取角色对象*/
Role Role=RoleLocalServiceUtil.getRole(userGroupRole.getRoleId());
System.out.println(“roleId:+role.getRoleId());
System.out.println(“roleName:+role.getName());
}
}

是的,谢谢。可以用角色名代替角色id吗?我已经更新了答案。基于userGroupRole.getRoleId()获取“角色”对象是的,谢谢。可以用角色名代替角色id吗?我已经更新了答案。基于userGroupRole.getRoleId()获取“角色”对象