最近,我开始研究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()
}

08-05 16:23