Я создаю бэкэнд отдыха с аутентификацией и различными ролями.Теперь проблема в том, что мне нравится фильтровать, результат зависит от роли пользователя.
Я не реализовал контроллер сам, вместо этого я использую PagingAndSortingRepository Inferface
, это работает довольно хорошо.Я ищу что-то похожее на этот python-django
метод .
Решение должно соответствовать шаблону REST.
Чтобы сделать это более понятным, вот exmaple :
Допустим, у меня есть два пользователя, пользователь A является обычным пользователем с ролью «пользователь».Пользователь B является администратором с ролью «admin».
Существует таблица базы данных, в которой хранятся userData
.Таблица выглядит следующим образом.
| ID | username | name | email |
Они оба отправляют простой аутентифицированный GET
запрос на /userData
.
Теперь мой бэкэнд обнаруживает на основев заголовке authentication
пользователей и добавьте роли.
Теперь, в зависимости от роли, пользователь A должен получить только ответ, содержащий его персональные данные, а пользователь B должен получить все доступные данные, хотя /userData
.
Ответ для пользователя A:
{
"res":[
{
"id":1,
"username":"userA",
"name":"A",
"email":"userA@mail.com"
}
]
}
Ответ для пользователя B:
{
"res":[
{
"id":1,
"username":"userA",
"name":"A",
"email":"userA@mail.com"
},
{
"id":2,
"username":"userB",
"name":"B",
"email":"userB@mail.com"
},
{
"id":3,
"username":"userC",
"name":"C",
"email":"userC@mail.com"
}
]
}