mirror of
https://github.com/django/django.git
synced 2025-07-05 18:29:11 +00:00
[per-object-permissions] Added grant_change_row_level_perm and grant_delete_row_level_perm for admin class in models, assigns the given permissions automatically after creation of an object
git-svn-id: http://code.djangoproject.com/svn/django/branches/per-object-permissions@3609 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
8250114990
commit
7c986521cf
@ -255,6 +255,14 @@ def add_stage(request, app_label, model_name, show_delete=False, form_url='', po
|
|||||||
pk_value = new_object._get_pk_val()
|
pk_value = new_object._get_pk_val()
|
||||||
LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, str(new_object), ADDITION)
|
LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, str(new_object), ADDITION)
|
||||||
msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': opts.verbose_name, 'obj': new_object}
|
msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': opts.verbose_name, 'obj': new_object}
|
||||||
|
|
||||||
|
if new_object._meta.row_level_permissions:
|
||||||
|
from django.contrib.auth.models import RowLevelPermission
|
||||||
|
admin_opts = new_object._meta.admin
|
||||||
|
RowLevelPermission.objects.create_default_row_permissions(new_object, request.user,
|
||||||
|
change=admin_opts.grant_change_row_level_perm,
|
||||||
|
delete=admin_opts.grant_delete_row_level_perm)
|
||||||
|
|
||||||
# Here, we distinguish between different save types by checking for
|
# Here, we distinguish between different save types by checking for
|
||||||
# the presence of keys in request.POST.
|
# the presence of keys in request.POST.
|
||||||
if request.POST.has_key("_continue"):
|
if request.POST.has_key("_continue"):
|
||||||
|
@ -202,7 +202,8 @@ class Options(object):
|
|||||||
class AdminOptions(object):
|
class AdminOptions(object):
|
||||||
def __init__(self, fields=None, js=None, list_display=None, list_display_links=None, list_filter=None,
|
def __init__(self, fields=None, js=None, list_display=None, list_display_links=None, list_filter=None,
|
||||||
date_hierarchy=None, save_as=False, ordering=None, search_fields=None,
|
date_hierarchy=None, save_as=False, ordering=None, search_fields=None,
|
||||||
save_on_top=False, list_select_related=False, manager=None, list_per_page=100):
|
save_on_top=False, list_select_related=False, manager=None, list_per_page=100,
|
||||||
|
grant_change_row_level_perm=False, grant_delete_row_level_perm=False):
|
||||||
self.fields = fields
|
self.fields = fields
|
||||||
self.js = js or []
|
self.js = js or []
|
||||||
self.list_display = list_display or ['__str__']
|
self.list_display = list_display or ['__str__']
|
||||||
@ -215,6 +216,8 @@ class AdminOptions(object):
|
|||||||
self.list_select_related = list_select_related
|
self.list_select_related = list_select_related
|
||||||
self.list_per_page = list_per_page
|
self.list_per_page = list_per_page
|
||||||
self.manager = manager or Manager()
|
self.manager = manager or Manager()
|
||||||
|
self.grant_change_row_level_perm=grant_change_row_level_perm
|
||||||
|
self.grant_delete_row_level_perm=grant_delete_row_level_perm
|
||||||
|
|
||||||
def get_field_sets(self, opts):
|
def get_field_sets(self, opts):
|
||||||
"Returns a list of AdminFieldSet objects for this AdminOptions object."
|
"Returns a list of AdminFieldSet objects for this AdminOptions object."
|
||||||
|
Loading…
x
Reference in New Issue
Block a user