mirror of
https://github.com/django/django.git
synced 2025-07-05 10:19:20 +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()
|
||||
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}
|
||||
|
||||
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
|
||||
# the presence of keys in request.POST.
|
||||
if request.POST.has_key("_continue"):
|
||||
|
@ -202,7 +202,8 @@ class Options(object):
|
||||
class AdminOptions(object):
|
||||
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,
|
||||
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.js = js or []
|
||||
self.list_display = list_display or ['__str__']
|
||||
@ -215,6 +216,8 @@ class AdminOptions(object):
|
||||
self.list_select_related = list_select_related
|
||||
self.list_per_page = list_per_page
|
||||
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):
|
||||
"Returns a list of AdminFieldSet objects for this AdminOptions object."
|
||||
|
Loading…
x
Reference in New Issue
Block a user