【发布时间】:2019-07-29 11:29:48
【问题描述】:
我已经使用 DRF 开发了 API。我正在努力将授权部分与我们在管理部分中为 API 的每个角色定义的 Django 默认权限相关联。
假设我有两个 API 的 Customer Management 和 Customer Sales 并在 Django 管理门户中从它们创建了两个角色。 manager 角色将只管理客户(add、view、delete 和 update),而 sales 角色将管理销售(add、view、delete 和 @9876543) 每位客户。
当我尝试在管理门户中测试它们时,权限工作正常。对应的角色有对应的权限。如果我将其与 REST API 一起使用,则它不符合后端定义的权限。就像两个角色都能够访问这两个 API。
我该如何处理?我应该实现自己的权限系统,忽略 Django 中使用的旧权限系统(auth_permission、auth_group_permissions、auth_user_user_permissions),还是有任何解决方法可以使用 Django 权限来完成这项工作?
【问题讨论】:
-
api_views 不使用 django 的默认权限。看看django-rest-framework.org/api-guide/permissions/…
-
所以技术上我可以忽略它们并设计我自己的模型,是吗?
-
可以,但是我提供的链接显示你也可以使用django的默认权限模型。
-
好的,如果你必须使用 Angular 或 react 作为前端,你建议使用哪个。使用默认或自定义授权。?
-
这是一个很难回答的问题,并且因用例而异。您应该注意到,使用内置 django 权限的一个主要优点是使用 django 的管理页面更容易编辑它们,这为您提供了一个现成的后台。如果您重新实现权限,则必须添加自己的管理系统。
标签: django django-rest-framework django-rest-auth django-permissions