aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/permissions.py
diff options
context:
space:
mode:
authorbwreilly2013-09-09 09:32:29 -0700
committerbwreilly2013-09-09 09:32:29 -0700
commit23fc9dd53fcd9cc25e2c77e5ffae395f04d4990d (patch)
tree5d81f1c228847444618620711e6df3aabc799f60 /rest_framework/permissions.py
parent0183c69538de7b6dc4e9b0602fc364e789e0cab6 (diff)
downloaddjango-rest-framework-23fc9dd53fcd9cc25e2c77e5ffae395f04d4990d.tar.bz2
better doc for object permissions, drop redundant has_permission call
Diffstat (limited to 'rest_framework/permissions.py')
-rw-r--r--rest_framework/permissions.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/rest_framework/permissions.py b/rest_framework/permissions.py
index 61a33bdd..70bf9c61 100644
--- a/rest_framework/permissions.py
+++ b/rest_framework/permissions.py
@@ -154,7 +154,14 @@ class DjangoModelPermissionsOrAnonReadOnly(DjangoModelPermissions):
class DjangoObjectLevelModelPermissions(DjangoModelPermissions):
"""
- Basic object level permissions utilizing django-guardian.
+ The request is authenticated using `django.contrib.auth` permissions.
+ See: https://docs.djangoproject.com/en/dev/topics/auth/#permissions
+
+ It ensures that the user is authenticated, and has the appropriate
+ `add`/`change`/`delete` permissions on the object using .has_perms.
+
+ This permission can only be applied against view classes that
+ provide a `.model` or `.queryset` attribute.
"""
actions_map = {
@@ -173,12 +180,6 @@ class DjangoObjectLevelModelPermissions(DjangoModelPermissions):
}
return [perm % kwargs for perm in self.actions_map[method]]
- def has_permission(self, request, view):
- if getattr(view, 'action', None) == 'list':
- queryset = view.get_queryset()
- view.queryset = ObjectPermissionReaderFilter().filter_queryset(request, queryset, view)
- return super(DjangoObjectLevelModelPermissions, self).has_permission(request, view)
-
def has_object_permission(self, request, view, obj):
model_cls = getattr(view, 'model', None)
queryset = getattr(view, 'queryset', None)