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
-~----------~----~----~----~------~----~------~--~---

Reply via email to