#java #spring #spring-data-jpa #spring-data #jhipster
#java #spring #spring-data-jpa #spring-данные #jhipster
Вопрос:
недавно я начал работать над угловым приложением jhipster (приложение, предназначенное для сотрудников). По умолчанию я получаю записи для всех пользователей, поэтому, чтобы ограничить его текущим пользователем, я изменил код на :
В EmployeeTargetsResource.java
для @GetMapping("/emp-targets")
Я изменил
empTargetsRepository.findAll()
Для empTargetsRepository.findByUserIsCurrentUser()
Но теперь я хочу изменить это на основе роли:
если зарегистрированный пользователь admin
, я хочу иметь empTargetsRepository.findAll()
в противном случае empTargetsRepository.findByUserIsCurrentUser()
Доступна ли какая-либо глобальная переменная для проверки того, является ли текущий зарегистрированный пользователь администратором в коде Java?
Для углового кода я мог бы использовать *jhiHasAnyAuthority="'ROLE_ADMIN'"
для html. Есть ли какая-либо аналогичная опция, доступная на стороне кода Java.
Ответ №1:
Вы можете использовать SecurityUtils.isCurrentUserInRole(AuthoritiesConstants.ADMIN), который вернет логическое значение, если у пользователя есть ROLE_ADMIN
полномочия.
Таким образом, ваш код будет выглядеть примерно так, как показано ниже:
if (SecurityUtils.isCurrentUserInRole(AuthoritiesConstants.ADMIN)) {
empTargetsRepository.findAll()
} else {
empTargetsRepository.findByUserIsCurrentUser()
}