如何通过名称获取 liferay 用户拥有的每个角色的权限
How to get permissions by name for each role a liferay user has
我一直在研究访问 control.So,在我们的 liferay portlet 中,我怎样才能获得用户的所有权限,我已经通过
获得了用户的角色
FacesContext facesContext = FacesContext.getCurrentInstance();
PortletRequest request = (PortletRequest) facesContext
.getExternalContext().getRequest();
User user = (User) request.getAttribute(WebKeys.USER);
List<Role> roles = new ArrayList<Role>();
roles.addAll(RoleLocalServiceUtil.getUserRoles(user.getUserId()));
roles.addAll(RoleLocalServiceUtil.getUserRelatedRoles(user.getUserId(), user.getGroupIds()));
但是如果给定用户对 portlet 具有 view/configuration/etc 权限,我找不到任何可以找到的东西。getResourceResourcePermissions
给了我权限,但通过 ID,我如何找到具有权限名称的权限,即 view/config/update
liferay 6.2
你可以在portlet中一一检查用户是否有那个权限。
ThemeDisplay themeDisplay= (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();
long groupId = themeDisplay.getScopeGroupId();
String name = (String)request.getAttribute(WebKeys.PORTLET_ID);
String primKey = portletDisplay.getResourcePK();
boolean view = permissionChecker.hasPermission(groupId, name, primKey, ActionKeys.VIEW);
boolean congiguration = permissionChecker.hasPermission(groupId, name, primKey, ActionKeys.CONFIGURATION);
boolean update = permissionChecker.hasPermission(groupId, name, primKey, ActionKeys.UPDATE);
我想你可以尝试使用这个 class PermissionFinderUtil。这个class包含了很多获取权限的函数。
我一直在研究访问 control.So,在我们的 liferay portlet 中,我怎样才能获得用户的所有权限,我已经通过
获得了用户的角色FacesContext facesContext = FacesContext.getCurrentInstance();
PortletRequest request = (PortletRequest) facesContext
.getExternalContext().getRequest();
User user = (User) request.getAttribute(WebKeys.USER);
List<Role> roles = new ArrayList<Role>();
roles.addAll(RoleLocalServiceUtil.getUserRoles(user.getUserId()));
roles.addAll(RoleLocalServiceUtil.getUserRelatedRoles(user.getUserId(), user.getGroupIds()));
但是如果给定用户对 portlet 具有 view/configuration/etc 权限,我找不到任何可以找到的东西。getResourceResourcePermissions
给了我权限,但通过 ID,我如何找到具有权限名称的权限,即 view/config/update
liferay 6.2
你可以在portlet中一一检查用户是否有那个权限。
ThemeDisplay themeDisplay= (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();
PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();
long groupId = themeDisplay.getScopeGroupId();
String name = (String)request.getAttribute(WebKeys.PORTLET_ID);
String primKey = portletDisplay.getResourcePK();
boolean view = permissionChecker.hasPermission(groupId, name, primKey, ActionKeys.VIEW);
boolean congiguration = permissionChecker.hasPermission(groupId, name, primKey, ActionKeys.CONFIGURATION);
boolean update = permissionChecker.hasPermission(groupId, name, primKey, ActionKeys.UPDATE);
我想你可以尝试使用这个 class PermissionFinderUtil。这个class包含了很多获取权限的函数。