我是liferay的新手,我正在完成我的第一项任务。 我创建了一种方法来检查是否为用户分配了给定的角色/权限。
我想写一个测试类来检查给定角色是否分配给当前登录用户? 如何在单元测试中模拟当前登录的用户?
提前致谢
答案 0 :(得分:1)
此方法并不总是有效,因为您可以成为您无权查看的角色的一部分。
相反,您可以使用RoleLocalServiceUtil
及其中的方法来检查角色成员资格,而使用ResourcePermissionLocalServiceUtil
来检查特定资源的权限。
更新 - 为了模拟用户,您可以使用以下代码段:
PrincipalThreadLocal.setName(user.getUserId());
PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user);
PermissionThreadLocal.setPermissionChecker(permissionChecker);
同样,如果用户试图检查他们是否属于某个角色,如果他们没有查看该角色的权限,您可能会收到误报。