最近,我开始研究jhipster角度应用程序(employee-targets应用程序)。默认情况下,我获取所有用户的条目,因此将其限制为当前用户,我将代码修改为:
在EmployeeTargetsResource.java
中
对于@GetMapping("/emp-targets")
我改变了empTargetsRepository.findAll()
至empTargetsRepository.findByUserIsCurrentUser()
但是现在我想根据角色更改此设置:
如果登录的用户是admin
,我想拥有empTargetsRepository.findAll()
否则empTargetsRepository.findByUserIsCurrentUser()
是否有任何全局变量可用于检查当前登录用户是否为Java代码中的admin?
对于角度代码,我可以使用html使用*jhiHasAnyAuthority="'ROLE_ADMIN'"
。 Java代码端是否有任何类似的选项可用。
最佳答案
您可以使用SecurityUtils.isCurrentUserInRole(AuthoritiesConstants.ADMIN),如果用户具有ROLE_ADMIN
权限,它将返回一个布尔值。
因此,您的代码将类似于以下内容:
if (SecurityUtils.isCurrentUserInRole(AuthoritiesConstants.ADMIN)) {
empTargetsRepository.findAll()
} else {
empTargetsRepository.findByUserIsCurrentUser()
}