Author: clong
Date: 2006-08-18 09:06:02 -0500 (Fri, 18 Aug 2006)
New Revision: 3609
Modified:
django/branches/per-object-permissions/django/contrib/admin/views/main.py
django/branches/per-object-permissions/django/db/models/options.py
Log:
[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
Modified:
django/branches/per-object-permissions/django/contrib/admin/views/main.py
===================================================================
--- django/branches/per-object-permissions/django/contrib/admin/views/main.py
2006-08-18 03:43:55 UTC (rev 3608)
+++ django/branches/per-object-permissions/django/contrib/admin/views/main.py
2006-08-18 14:06:02 UTC (rev 3609)
@@ -255,6 +255,14 @@
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"):
Modified: django/branches/per-object-permissions/django/db/models/options.py
===================================================================
--- django/branches/per-object-permissions/django/db/models/options.py
2006-08-18 03:43:55 UTC (rev 3608)
+++ django/branches/per-object-permissions/django/db/models/options.py
2006-08-18 14:06:02 UTC (rev 3609)
@@ -202,7 +202,8 @@
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 @@
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."
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates
-~----------~----~----~----~------~----~------~--~---