【问题标题】:Getting user role in Java Portlets在 Java Portlet 中获取用户角色
【发布时间】:2014-05-02 10:09:17
【问题描述】:

我正在使用liferay 服务器来构建一个使用portlet 的门户应用程序。

我想在网站上显示一些用户特定的数据。

如何在 liferay portlet 中获取登录用户的角色?

我的示例 java 代码 -

@Override
public void processAction(ActionRequest request, ActionResponse response)
    throws PortletException, IOException {
  String data = ""; 
  if(userRole = "Admin") {    //How to get this user role? 
     data = "Admin user logged in";
  } else if(userRole = "Guest"){
     data = "Guest user logged in"; 
  }
  request.setAttribute("data", data);
}

还有JSP代码——

<script>
    function WhoLoggedIn() {
        document.getElementById("gameForm").submit();
    }
</script>
<div onClick="WhoLoggedIn()">Click HERE</div>
<div>${data}</data>

谢谢。

【问题讨论】:

    标签: java liferay portlet


    【解决方案1】:

    在您的 portlet 代码中,您可以使用 portlet 规范中定义的以下方法:

    portletRequest.isUserInRole("roleName");
    

    注意: Liferay 在默认提供的任何 portlet 中都不使用 isUserInRole() 方法。相反,它直接使用 Liferay 的权限系统,以实现更细粒度的安全性。

    更多信息请参考以下链接

    https://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/security-and-permissio-4

    您可以使用 PermissionChecker 中的一些方法。

    ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
    PermissionChecker permissionChecker = themeDisplay.getPermissionChecker();
    
    permissionChecker.isCompanyAdmin() //   Returns true if the user is an administrator of their company.
    permissionChecker.isOmniadmin()  //      Returns true if the user is a universal administrator.
    permissionChecker.isGroupAdmin(long groupId)  //  Returns true if the user is an administrator of the group.
    

    有关 PermissionChecker 的更多信息,请参阅以下链接 http://docs.liferay.com/portal/6.1/javadocs/com/liferay/portal/security/permission/PermissionChecker.html

    你也可以探索RoleLocalServiceUtil Liferay的类

    http://docs.liferay.com/portal/6.1/javadocs/com/liferay/portal/service/RoleLocalServiceUtil.html

    【讨论】:

    • 我可以在带有 ActionRequest 对象的 processAction 方法中使用 isUserInRole 方法吗?
    • 是的,你可以 actionRequest.isUserInRole("roleName");其中 actionRequest 是 ActionRequest 的参考
    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 2015-10-17
    • 2014-08-14
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    相关资源
    最近更新 更多