设置用户访问权限

时间:2019-09-24 00:49:30

标签: django-rest-framework swagger drf-yasg django-swagger

我们已经使用drf-yasg记录了一组API。 在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位于/昂首阔步/”。如果用户在访问招摇之前已经登录,则没有问题。

0 个答案:

没有答案