Django

Code

Changeset 3609

Show
Ignore:
Timestamp:
08/18/06 09:06:02 (2 years ago)
Author:
clong
Message:

[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

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/per-object-permissions/django/contrib/admin/views/main.py

    r3583 r3609  
    256256            LogEntry.objects.log_action(request.user.id, ContentType.objects.get_for_model(model).id, pk_value, str(new_object), ADDITION) 
    257257            msg = _('The %(name)s "%(obj)s" was added successfully.') % {'name': opts.verbose_name, 'obj': new_object} 
     258             
     259            if new_object._meta.row_level_permissions: 
     260                from django.contrib.auth.models import RowLevelPermission 
     261                admin_opts = new_object._meta.admin 
     262                RowLevelPermission.objects.create_default_row_permissions(new_object, request.user,  
     263                                                                          change=admin_opts.grant_change_row_level_perm, 
     264                                                                          delete=admin_opts.grant_delete_row_level_perm) 
     265             
    258266            # Here, we distinguish between different save types by checking for 
    259267            # the presence of keys in request.POST. 
  • django/branches/per-object-permissions/django/db/models/options.py

    r3441 r3609  
    203203    def __init__(self, fields=None, js=None, list_display=None, list_display_links=None, list_filter=None, 
    204204        date_hierarchy=None, save_as=False, ordering=None, search_fields=None, 
    205         save_on_top=False, list_select_related=False, manager=None, list_per_page=100): 
     205        save_on_top=False, list_select_related=False, manager=None, list_per_page=100,  
     206        grant_change_row_level_perm=False, grant_delete_row_level_perm=False): 
    206207        self.fields = fields 
    207208        self.js = js or [] 
     
    216217        self.list_per_page = list_per_page 
    217218        self.manager = manager or Manager() 
     219        self.grant_change_row_level_perm=grant_change_row_level_perm 
     220        self.grant_delete_row_level_perm=grant_delete_row_level_perm 
    218221 
    219222    def get_field_sets(self, opts):