Cod*_*ise 2 python django permissions python-3.x django-rest-framework
我有一个 DRF ViewSet,我正在向其中添加CanViewAndEditStaff权限。我只希望某些用户 ( user.access_level < 2) 能够查看员工列表。在我的权限类中,如何区分对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
Run Code Online (Sandbox Code Playgroud)
class CanViewAndEditStaff(permissions.BasePermission):
def has_permission(self, request, view):
# IF THIS IS A LIST VIEW, CHECK ACCESS LEVEL
if (view.action == 'list' and request.user.access_level < 3 ):
return True
# ELSE, CONTINUE ON TO OBJECT PERMISSIONS
Run Code Online (Sandbox Code Playgroud)
您可以使用 view.action 来了解这是列表还是其他内容。
| 归档时间: |
|
| 查看次数: |
2013 次 |
| 最近记录: |