目前我正在尝试创建一个概述,其中列出了为每个人激活的所有布局和Portlet以及角色(权限)。Liferay API:通过权限获取角色
我想我已经很接近解决方案了,但最后一点缺失。
我已经得到了我需要的所有信息。我得到了表单布局 - >到资源 - >到权限。但是现在我不知道如何通过Liferay API从权限(或permissionId)获得实际的角色。
我有什么:布局,资源,权限 我需要什么:角色
使用的Liferay 5.2.4
目前我正在尝试创建一个概述,其中列出了为每个人激活的所有布局和Portlet以及角色(权限)。Liferay API:通过权限获取角色
我想我已经很接近解决方案了,但最后一点缺失。
我已经得到了我需要的所有信息。我得到了表单布局 - >到资源 - >到权限。但是现在我不知道如何通过Liferay API从权限(或permissionId)获得实际的角色。
我有什么:布局,资源,权限 我需要什么:角色
使用的Liferay 5.2.4
好吧,我想我终于找到了自己。我现在所做的全部是:
List<Layout> tempPages = LayoutLocalServiceUtil.getLayouts(0, LayoutLocalServiceUtil.getLayoutsCount());
List<Role> allAvailRoles = RoleLocalServiceUtil.getRoles(0, RoleLocalServiceUtil.getRolesCount());
for (Layout page : tempPages)
{
List<Role> mappedRoles = new ArrayList<Role>();
for (Role role : allAvailRoles)
{
boolean hasRolePermission = PermissionLocalServiceUtil.hasRolePermission(role.getRoleId(),
page.getCompanyId(),
Layout.class.getName(),
ResourceConstants.SCOPE_INDIVIDUAL,
String.valueOf(page.getPrimaryKey()),
"VIEW");
if (hasRolePermission)
{
mappedRoles.add(role);
}
}
pages.add(new LayoutRoleModel(page, mappedRoles));
}
可以使用RoleLocalServiceUtil。 companyId你可以通过调用user.getCompanyId来获取Liferay用户。和用户可以通过这种方式检索:user = UserLocalServiceUtil.getUserById(id);
private static Role getLiferayRole(String roleName, long companyId) {
Role role = null;
try {
role = RoleLocalServiceUtil.getRole(companyId, roleName);
} catch (Exception e) {
LOG.error(e.getMessage());
}
return role;
}