[英]How to get permissions by name for each role a liferay user has
我一直在研究訪問控制。所以,在我們的 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 具有查看/配置/等權限,我無法找到任何可以找到的信息。 getResourceResourcePermissions
給了我權限,但通過 ids,我如何找到具有權限名稱的權限,即查看/配置/更新
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);
我認為你可以嘗試使用這個類 PermissionFinderUtil。 這個類包含了很多獲取權限的函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.