Django

Code

Changeset 3627

Show
Ignore:
Timestamp:
08/20/06 17:17:01 (2 years ago)
Author:
clong
Message:

[per-object-permissions] Removed debug print statement in auth/models.py
[per-object-permissions] Added admin option: show_all_rows which by default is set to True. If False, it will only show the rows the user has permission for. Implemented the changes into change_list to allow this

Files:

Legend:

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

    r3625 r3627  
    2828                    if m._meta.admin: 
    2929                        if not m._meta.admin.hidden: 
    30                             #perms = { 
    31                                 #'add': user.has_perm("%s.%s" % (app_label, m._meta.get_add_permission())), 
    32                                 #'change': user.has_perm("%s.%s" % (app_label, m._meta.get_change_permission())), 
    33                                 #'delete': user.has_perm("%s.%s" % (app_label, m._meta.get_delete_permission())), 
    34                             #} 
    35      
     30 
    3631                            perms = { 
    3732                                'add': user.contains_permission("%s.%s" % (app_label, m._meta.get_add_permission()), m), 
  • django/branches/per-object-permissions/django/contrib/admin/templatetags/admin_list.py

    r3464 r3627  
    105105    first = True 
    106106    pk = cl.lookup_opts.pk.attname 
     107    if not cl.opts.admin.show_all_rows: 
     108        if not cl.user.has_perm(cl.opts.app_label + "." + cl.opts.get_change_permission(), object=result): 
     109            return 
     110        cl.result_count = cl.result_count +1 
    107111    for field_name in cl.lookup_opts.admin.list_display: 
    108112        row_class = '' 
  • django/branches/per-object-permissions/django/contrib/admin/views/main.py

    r3625 r3627  
    434434                if related.opts.admin: 
    435435                    p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission()) 
    436                     if not user.has_perm(p): 
     436                    if not user.has_perm(p, object=related): 
    437437                        perms_needed.add(related.opts.verbose_name) 
    438438                        # We don't care about populating deleted_objects now. 
     
    465465            if related.opts.admin and has_related_objs: 
    466466                p = '%s.%s' % (related.opts.app_label, related.opts.get_delete_permission()) 
    467                 if not user.has_perm(p): 
     467                if not user.has_perm(p, object=related): 
    468468                    perms_needed.add(rel_opts_name) 
    469469    for related in opts.get_all_related_many_to_many_objects(): 
     
    494494        if related.opts.admin and has_related_objs: 
    495495            p = '%s.%s' % (related.opts.app_label, related.opts.get_change_permission()) 
    496             if not user.has_perm(p): 
     496            if not user.has_perm(p, object=related): 
    497497                perms_needed.add(related.opts.verbose_name) 
    498498 
     
    563563        self.lookup_opts = self.opts 
    564564        self.manager = self.opts.admin.manager 
     565        self.user = request.user 
    565566 
    566567        # Get search parameters from the query string. 
     
    645646                result_list = () 
    646647 
    647         self.result_count = result_count 
     648        if self.opts.admin.show_all_rows: 
     649            self.result_count = result_count 
     650        else: 
     651            self.result_count = 0 
    648652        self.full_result_count = full_result_count 
    649653        self.result_list = result_list 
  • django/branches/per-object-permissions/django/contrib/auth/models.py

    r3624 r3627  
    374374            backend.quote_name('negative'), backend.quote_name('owner_ct_id'), 
    375375            backend.quote_name('model_ct_id')) 
    376         print sql 
     376         
    377377        cursor.execute(sql, [self.id, ContentType.objects.get_for_model(Group).id, ct.id]) 
    378378        count = int(cursor.fetchone()[0]) 
  • django/branches/per-object-permissions/django/db/models/options.py

    r3622 r3627  
    204204        date_hierarchy=None, save_as=False, ordering=None, search_fields=None, 
    205205        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, hidden=False): 
     206        grant_change_row_level_perm=False, grant_delete_row_level_perm=False, hidden=False, 
     207        show_all_rows=True): 
    207208        self.fields = fields 
    208209        self.js = js or [] 
     
    220221        self.grant_delete_row_level_perm=grant_delete_row_level_perm 
    221222        self.hidden = hidden 
     223        self.show_all_rows = show_all_rows 
    222224 
    223225    def get_field_sets(self, opts):