Liferay Theme - Velocity - 检查用户是否有自定义角色

Liferay Theme - Velocity - Check if user has custom role

我一直在 SO 上寻找解决方案,但目前还没有成功。我发现了一些类似的问题,但没有解决方案。

我正在尝试在登录时添加某种角色检查,以查看用户是否具有我定义的自定义角色。如果是这样。他们得到了停靠栏。

目前正在检查他们是否是整个网站的管理员。这是我不想给别人的东西。他们需要像高级用户一样拥有一组特定的权限。

目前的检查是这样的:

#if ($is_signed_in && $permissionChecker.isOmniadmin())

我看到过检查特定角色 ID 的示例,这些示例看起来可以正常工作。

此处示例:

#set($UserLocalServiceUtil = $serviceLocator.findService("com.liferay.portal.service.UserLocalService"))
#if ($UserLocalServiceUtil.hasRoleUser(roleID, $user.getUserId()))

这种方法的唯一问题是我不确定我的自定义角色 ID 是什么以及我如何获得它。

所以

有谁知道如何获得我的自定义角色 ID?

是否有某种 .getRoleName 选择器被我忽略了?

也许这个方法可以帮助您完成代码。

是否可以按名称设置角色(名称可以通过主题设置存储和配置)

#set($RoleLocalServiceUtil = $serviceLocator.findService("com.liferay.portal.service.RoleLocalService"))
#set ($role = $RoleLocalServiceUtil.fetchRole(roleName, $themeDisplay.companyId))

这可以在一个方法调用中实现

#set ($roleLocalServiceUtil = $serviceLocator.findService("com.liferay.portal.service.RoleLocalService"))

#if  ($roleLocalServiceUtil.hasUserRole($user.getUserId(),$user.getCompanyId(), "<YOUR ROLE NAME>", true))

谢谢。