java - 在 Java Portlet 中获取用户角色

标签 java liferay portlet

我正在使用 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>

谢谢。

最佳答案

在您的 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

您还可以探索 Liferay 的 RoleLocalServiceUtil

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

关于java - 在 Java Portlet 中获取用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22619794/

相关文章:

java - Liferay IDE portlet 更改未在服务器上同步

javascript - AJAX调用liferay门户

java - 如何在 Liferay 6.0.6 中的 JSF portlet 中上传文件

java - 如何在Liferay站点的每个页面上放置公司地址和电话?

java - 如何在 Android 上获取电子邮件?

java - 如何使用 Spring JDBC 的 MERGE 语句插入/更新单个记录

jquery - 如何在Liferay主题中加载布局而不刷新?

spring-mvc - Liferay上Portlet开发方法的建议

java - getter 总是在 android 中返回

Java:将事件传递给另一个组件