jhipster, идентификация роли администратора на стороне Java

#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()
}