簡體   English   中英

如何按名稱為 liferay 用戶擁有的每個角色獲取權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM