Fixed #11124 -- Expanded docstrings of the ModelAdmin has_{change|delete}_permission methods to make it clear they can be overriden to implement per-instance permission checks. Refs #12642.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15126 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
70c8cd4100
commit
9c950db518
|
@ -340,17 +340,23 @@ class ModelAdmin(BaseModelAdmin):
|
||||||
media = property(_media)
|
media = property(_media)
|
||||||
|
|
||||||
def has_add_permission(self, request):
|
def has_add_permission(self, request):
|
||||||
"Returns True if the given request has permission to add an object."
|
"""
|
||||||
|
Returns True if the given request has permission to add an object.
|
||||||
|
Can be overriden by the user in subclasses.
|
||||||
|
"""
|
||||||
opts = self.opts
|
opts = self.opts
|
||||||
return request.user.has_perm(opts.app_label + '.' + opts.get_add_permission())
|
return request.user.has_perm(opts.app_label + '.' + opts.get_add_permission())
|
||||||
|
|
||||||
def has_change_permission(self, request, obj=None):
|
def has_change_permission(self, request, obj=None):
|
||||||
"""
|
"""
|
||||||
Returns True if the given request has permission to change the given
|
Returns True if the given request has permission to change the given
|
||||||
Django model instance.
|
Django model instance, the default implementation doesn't examine the
|
||||||
|
`obj` parameter.
|
||||||
|
|
||||||
If `obj` is None, this should return True if the given request has
|
Can be overriden by the user in subclasses. In such case it should
|
||||||
permission to change *any* object of the given type.
|
return True if the given request has permission to change the `obj`
|
||||||
|
model instance. If `obj` is None, this should return True if the given
|
||||||
|
request has permission to change *any* object of the given type.
|
||||||
"""
|
"""
|
||||||
opts = self.opts
|
opts = self.opts
|
||||||
return request.user.has_perm(opts.app_label + '.' + opts.get_change_permission())
|
return request.user.has_perm(opts.app_label + '.' + opts.get_change_permission())
|
||||||
|
@ -358,10 +364,13 @@ class ModelAdmin(BaseModelAdmin):
|
||||||
def has_delete_permission(self, request, obj=None):
|
def has_delete_permission(self, request, obj=None):
|
||||||
"""
|
"""
|
||||||
Returns True if the given request has permission to change the given
|
Returns True if the given request has permission to change the given
|
||||||
Django model instance.
|
Django model instance, the default implementation doesn't examine the
|
||||||
|
`obj` parameter.
|
||||||
|
|
||||||
If `obj` is None, this should return True if the given request has
|
Can be overriden by the user in subclasses. In such case it should
|
||||||
permission to delete *any* object of the given type.
|
return True if the given request has permission to delete the `obj`
|
||||||
|
model instance. If `obj` is None, this should return True if the given
|
||||||
|
request has permission to delete *any* object of the given type.
|
||||||
"""
|
"""
|
||||||
opts = self.opts
|
opts = self.opts
|
||||||
return request.user.has_perm(opts.app_label + '.' + opts.get_delete_permission())
|
return request.user.has_perm(opts.app_label + '.' + opts.get_delete_permission())
|
||||||
|
|
Loading…
Reference in New Issue