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