Установите права доступа пользователей к чванству - PullRequest
0 голосов
/ 24 сентября 2019

У нас есть набор API, уже задокументированный с использованием drf-yasg .В файле settings.py я установил эти настройки:

schema_view = get_schema_view(
   openapi.Info(
      title="myTitle",
      default_version='v' + str(1.0)
   ),
   patterns=myPatterns,
   public=False,
   permission_classes=(permissions.IsAuthenticated,),
)

Я создал некоторых пользователей с помощью команды python manage.py createsuperuser , которая может получить доступ ко всем конечным точкам API после входа в систему.

СначалаПроблема: Как я могу установить некоторые «разрешения», чтобы некоторые пользователи могли получить доступ к набору API, в то время как другая группа пользователей, другой набор и пользователь, похожий на администратора, имеют доступ ко всем API?

Вторая проблема: при использовании django-rest-swagger я мог скрыть все конечные точки для анонимных пользователей, пытающихся достичь конечной точки /swagger, установив permission_classes в IsAuthenticated.После этого пользователь получит доступ к пустой веб-странице сваггера, с которой он сможет войти, чтобы показать конечные точки API.

Однако, поскольку я обновил до drf-yasg, я установил такое же разрешение (см. Выше),но если анонимный пользователь пытается получить доступ к /swagger, я получаю ошибку фреймворка django: «NoReverseMatch at / swagger /».Если пользователь уже вошел в систему до получения доступа к Swagger, то нет проблем.

...