如何在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()获取“角色”对象