目前我正在尝试创建一个概述,其中列出了为每个人激活的所有布局和Portlet以及角色(权限)。
我认为我已经非常接近解决方案了,但最后一点都不见了。
我已经获得了所需的各种信息。我得到了表单布局 - >资源 - >许可。但现在我不知道如何通过Liferay API从Permissions(或permissionId)到实际角色。
我拥有:布局,资源,权限 我需要的是:角色
使用Liferay 5.2.4
答案 0 :(得分:0)
您可以使用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;
}
答案 1 :(得分:0)
好吧,我想我终于找到了自己。我现在所做的就是:
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 ) );
}