【发布时间】:2018-12-24 13:20:25
【问题描述】:
我有一个 DRF 视图集,我正在向其中添加 CanViewAndEditStaff 权限。我只希望某些用户 (user.access_level < 2) 能够查看员工列表。在我的 Permissions 类中,如何区分对 list 视图和 get 项目视图的调用。这是我的权限类:
class CanViewAndEditStaff(permissions.BasePermission):
def has_permission(self, request, view):
# IF THIS IS A LIST VIEW, CHECK ACCESS LEVEL
if ( request.user.access_level < 3 ):
return True
# ELSE, CONTINUE ON TO OBJECT PERMISSIONS
def has_object_permission(self,request,view,account):
# admin can do anything
if ( request.user.access_level == 1 ):
return True
# view/edit/delete
else:
# users can view their own account
if account == request.user:
return True
elif account.access_level >= request.user.access_level:
return True
return False
【问题讨论】:
标签: python django python-3.x permissions django-rest-framework