Django

Code

Show
Ignore:
Timestamp:
12/28/06 21:15:37 (2 years ago)
Author:
jkocherhans
Message:

Made generic-auth backwards compatible with the trunk.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/generic-auth/django/contrib/admin/templatetags/adminapplist.py

    r4025 r4256  
    2929                for m in app_models: 
    3030                    if m._meta.admin: 
    31                         opts = m._meta 
     31                        # TODO: convert this to use Permission objects instead of strings 
    3232                        perms = { 
    33                             'add': has_permission(user, opts.get_add_permission()), 
    34                             'change': has_permission(user, opts.get_change_permission()), 
    35                             'delete': has_permission(user, opts.get_delete_permission()), 
     33                            'add': user.has_perm("%s.%s" % (app_label, m._meta.get_add_permission())), 
     34                            'change': user.has_perm("%s.%s" % (app_label, m._meta.get_change_permission())), 
     35                            'delete': user.has_perm("%s.%s" % (app_label, m._meta.get_delete_permission())), 
    3636                        } 
    3737 
  • django/branches/generic-auth/django/contrib/admin/views/main.py

    r4255 r4256  
    201201        'add': add, 
    202202        'change': change, 
    203         'has_delete_permission': context['perms'][app_label][opts.get_delete_permission().codename], 
    204         'has_change_permission': context['perms'][app_label][opts.get_change_permission().codename], 
     203        'has_delete_permission': context['perms'][app_label][opts.get_delete_permission()], 
     204        'has_change_permission': context['perms'][app_label][opts.get_change_permission()], 
    205205        'has_file_field': opts.has_field_type(models.FileField), 
    206206        'has_absolute_url': hasattr(model, 'get_absolute_url'), 
     
    231231    opts = model._meta 
    232232 
    233     if not has_permission(request.user, opts.get_add_permission()): 
     233    if not has_permission(request.user, opts.add_permission): 
    234234        raise PermissionDenied 
    235235 
     
    254254                # object here. We're concerned with whether the user can edit 
    255255                # ANY instances of this model, not just the one we created. 
    256                 if has_permission(request.user, opts.get_change_permission()): 
     256                if has_permission(request.user, opts.change_permission): 
    257257                    # redirect to list view 
    258258                    post_url = '../' 
     
    319319        raise Http404('%s object with primary key %r does not exist' % (model_name, escape(object_id))) 
    320320 
    321     if not has_permission(request.user, opts.get_change_permission(), manipulator.original_object): 
     321    if not has_permission(request.user, opts.change_permission, manipulator.original_object): 
    322322        raise PermissionDenied 
    323323 
     
    427427            else: 
    428428                if related.opts.admin: 
    429                     if not has_permission(user, related.opts.get_delete_permission(), related): 
     429                    if not has_permission(user, related.opts.delete_permission, related): 
    430430                        perms_needed.add(related.opts.verbose_name) 
    431431                        # We don't care about populating deleted_objects now. 
     
    457457            # permission to delete them, add the missing perm to perms_needed. 
    458458            if related.opts.admin and has_related_objs: 
    459                 if not has_permission(user, related.opts.get_delete_permission(), related): 
     459                if not has_permission(user, related.opts.delete_permission, related): 
    460460                    perms_needed.add(related.opts.verbose_name) 
    461461    for related in opts.get_all_related_many_to_many_objects(): 
     
    485485        # permission to change them, add the missing perm to perms_needed. 
    486486        if related.opts.admin and has_related_objs: 
    487             if not has_permission(user, related.opts.get_delete_permission(), related): 
     487            if not has_permission(user, related.opts.delete_permission, related): 
    488488                perms_needed.add(related.opts.verbose_name) 
    489489 
     
    496496    opts = model._meta 
    497497    obj = get_object_or_404(model, pk=object_id) 
    498     if not has_permission(request.user, opts.get_delete_permission(), obj): 
     498    if not has_permission(request.user, opts.delete_permission, obj): 
    499499        raise PermissionDenied 
    500500 
     
    750750    # has_permission. There should be a has_permission implementation  
    751751    # registered that knows when the obj arg is missing. 
    752     if not has_permission(request.user, model._meta.get_change_permission()): 
     752    if not has_permission(request.user, model._meta.change_permission): 
    753753        raise PermissionDenied 
    754754    try: 
  • django/branches/generic-auth/django/db/models/options.py

    r4025 r4256  
    107107 
    108108    def get_add_permission(self): 
     109        return 'add_%s' % self.object_name.lower() 
     110 
     111    def get_change_permission(self): 
     112        return 'change_%s' % self.object_name.lower() 
     113 
     114    def get_delete_permission(self): 
     115        return 'delete_%s' % self.object_name.lower() 
     116 
     117    def _get_add_permission(self): 
     118        # import goes here because models aren't necessarily set up when this  
     119        # module is imported 
    109120        from django.contrib.auth.models import Permission 
    110121        codename = 'add_%s' % self.object_name.lower() 
     
    112123            content_type__app_label__exact=self.app_label, 
    113124            codename=codename) 
    114  
    115     def get_change_permission(self): 
     125    add_permission = property(_get_add_permission) 
     126 
     127    def _get_change_permission(self): 
     128        # import goes here because models aren't necessarily set up when this  
     129        # module is imported 
    116130        from django.contrib.auth.models import Permission 
    117131        codename = 'change_%s' % self.object_name.lower() 
     
    119133            content_type__app_label__exact=self.app_label, 
    120134            codename=codename) 
    121  
    122     def get_delete_permission(self): 
     135    change_permission = property(_get_change_permission) 
     136 
     137    def _get_delete_permission(self): 
     138        # import goes here because models aren't necessarily set up when this  
     139        # module is imported 
    123140        from django.contrib.auth.models import Permission 
    124141        codename = 'delete_%s' % self.object_name.lower() 
     
    126143            content_type__app_label__exact=self.app_label, 
    127144            codename=codename) 
     145    delete_permission = property(_get_delete_permission) 
    128146 
    129147    def get_all_related_objects(self): 
  • django/branches/generic-auth/tests/regressiontests/generic_auth/tests.py

    r4057 r4256  
    4040 
    4141>>> opts = Person._meta 
    42 >>> add_permission = opts.get_add_permission() 
    43 >>> change_permission = opts.get_change_permission() 
    44 >>> delete_permission = opts.get_delete_permission() 
     42>>> add_permission = opts.add_permission 
     43>>> change_permission = opts.change_permission 
     44>>> delete_permission = opts.delete_permission 
    4545 
    4646 
     
    112112Set up some convenient references to the various permission objects. 
    113113 
    114 >>> add_permission = Article._meta.get_add_permission() 
    115 >>> change_permission = Article._meta.get_change_permission() 
    116 >>> delete_permission = Article._meta.get_delete_permission() 
     114>>> add_permission = Article._meta.add_permission 
     115>>> change_permission = Article._meta.change_permission 
     116>>> delete_permission = Article._meta.delete_permission 
    117117 
    118118Adding isn't tied to a particular object, and we haven't given the user