我为Django应用设计了自己的CustomerServiceImpl.getDetails
。与最初的Django基于角色的仅使用RBAC system
,permissions
,content_types
和groups
表的情况不同,我设计了我的模型,使其包含用于定义的{{1 }}(即users
),operations
(即read, write, print
),objects
(Post, Events, Documents
)和必要的关系,即我自己的权限表roles
和匹配的Writer Level 1, Events Manager
(即object reference
)中。
我现在的问题是我不太确定如何在operation reference
中实现它。当我使用Post | add
且有人向DRF
模型/表发送“ POST”请求时,我们都知道Django将检查用户是否具有permission_class = (DjangoObjectPermissions,)
权限。我也想这样做,但是我希望Django引用我的RBAC模型/表。
我想在Post
中编写自己的权限类,但可能需要一些有关如何实现此权限的提示。
我已经读过create custom permissions,但是我不确定是否也可以使用它来执行自己的RBAC表。
答案 0 :(得分:1)
与
DjangoModelPermissions
一样,此权限仅适用于具有.queryset
属性或 {{1} } 方法。仅当用户通过身份验证并分配了相关的每个对象权限和相关的模型权限后,才会授予授权。
因此,您应该在视图类中定义 .get_queryset()
属性或 queryset
方法。
示例:
get_queryset(...)
控制对用户或组的权限
答案 1 :(得分:0)
好吧,在检查rest_frameworks
'permissions.py
之后,我认为我可以这样执行我自己的权限类行为:
rest_framework.permissions.BasePermission
has_object_permission()
方法