如何在 liferay 中使用 Role Name 获取 RoleId?

How to get RoleId using Role Name in liferay?

有什么方法可以使用角色名称获取角色 ID?我在我的门户上创建了一些自定义角色,例如 "Project Manager"、"Client" 和 "Delivery Head"。现在我需要使用角色名称以编程方式获取这些自定义角色的各自角色。

有什么建议吗?

您可以使用RoleLocalServiceUtil.getRole(companyId, name)方法获取角色对象(RoleModel的实例)。如果您需要 id,请调用 role.getRoleId().

可以调用ThemeDisplay.getCompanyId()获取公司id。

public long getRoleIdByName(String roleName) throws Exception {
    if (roleName != null && !roleName.isEmpty()) {
        for (Role role : RoleLocalServiceUtil.getRoles(0, RoleLocalServiceUtil.getRolesCount())) {
            if (role.getName().equals(roleName)) {
                return role.getRoleId();
            }
        }
    }
    return -1;
}