@galliard

Как с помощью Symfony Secure разрешить доступ только к одному id в рест-роуте?

Есть REST-сервис. У него есть роуты /users, /users/{id} и /users/{id}/всечтоугодно.

Мне нужно запретить конкретному авторизованому пользователю доступ ко всем юзерам, кроме его самого и его ресурсам. То есть если у текущего авторизованного пользователя id 123, то ему должны быть доступны только урлы /users/123 и /users/123/всечтоугодно, вто время как ресурсы других пользователей ему не должны быть доступны.

Есть ли способ сделать это через Symfony Secure Bundle или придется каждый раз самому городить эту проверку в контроллерах?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Самое простое - сделать шорткат:
вместо
/users/123 и /users/123/всечтоугодно
например
/my и /my/всечтоугодно
Проще и с точки зрения DX, и с UX.

Если очень хочется оставить как есть, то надо использовать Voter и городить соответствующую проверку в контроллере. При желании можно эту проверку сбросить на Argument Resolver
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы