我正在使用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>
感谢。
答案 0 :(得分:4)
在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