Django

Code

Changeset 3487

Show
Ignore:
Timestamp:
07/29/06 13:27:50 (2 years ago)
Author:
clong
Message:

[per-object-permissions] Fixed some problems with checking of permissions

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/branches/per-object-permissions/django/contrib/admin/templates/admin/change_form.html

    r3486 r3487  
    6767</form> 
    6868 
    69 {% if rlp_form_list %} 
     69{% if new_rlp_form %} 
    7070{% include "admin/row_level_permission.html" %} 
    7171{% endif %} 
  • django/branches/per-object-permissions/django/contrib/admin/views/main.py

    r3486 r3487  
    392392        'original': manipulator.original_object, 
    393393        'is_popup': request.REQUEST.has_key('_popup'), 
    394         'is_row_level_perm': model._meta.row_level_permissions, 
    395394    }) 
    396395 
  • django/branches/per-object-permissions/django/contrib/admin/views/row_level_permissions.py

    r3486 r3487  
    55from django.contrib.auth.models import RowLevelPermission 
    66from django.contrib.admin.row_level_perm_manipulator import AddRLPManipulator, ChangeRLPManipulator 
     7from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist, PermissionDenied 
    78import simplejson 
    89 
     
    1617        if not request.user.has_perm(opts.app_label + '.' + opts.get_delete_permission()): 
    1718            raise PermissionDenied    
    18         if not request.user.has_perm(obj._meta.app_label + '.' + obj._meta.get_delete_permission()): 
     19        if not request.user.has_perm(obj._meta.app_label + '.' + obj._meta.get_change_permission()()): 
    1920            raise PermissionDenied            
    2021        rlp.delete() 
     
    3940    ct = get_object_or_404(ContentType, pk=ct_id) 
    4041    obj = get_object_or_404(ct.model_class(), pk=obj_id) 
    41   
    42     if not request.user.has_perm(obj._meta.app_label + '.' + obj._meta.get_add_permission()): 
     42 
     43    if not request.user.has_perm(obj._meta.app_label + '.' + obj._meta.get_change_permission()): 
    4344        raise PermissionDenied   
     45 
     46    if not request.user.has_perm(RowLevelPermission._meta.app_label + '.' + RowLevelPermission._meta.get_add_permission()): 
     47        raise PermissionDenied 
    4448     
    4549    manip = AddRLPManipulator(obj, ct) 
     
    5559        msg = {"result":False, "text":_("A row level permission already exists with the specified values.")} 
    5660    else: 
    57         msg = {"result":True, "text":_("Row level permission has successful been added.")} 
     61        if len(rlp_list) is 1: 
     62            msg = {"result":True, "text":_("Row level permission has successfully been added.")} 
     63        else: 
     64            msg = {"result":True, "text":_("Row level permissions have successfully been added.")} 
    5865    if not ajax: 
    5966        request.user.message_set.create(message=msg['text']) 
     
    8188        return HttpResponseRedirect("/edit/%s/%s" % (obj_type, obj_id))          
    8289     
    83     obj = get_object_or_404(RowLevelPermission, pk=rlp_id) 
    84     opts = obj._meta 
     90    rlp = get_object_or_404(RowLevelPermission, pk=rlp_id) 
     91    opts = rlp._meta 
     92    if not request.user.has_perm(opts.app_label + '.' + opts.get_add_permission()): 
     93        raise PermissionDenied   
    8594 
    86     #if not request.user.has_perm(app_label + '.' + opts.get_change_permission()): 
    87     #if not request.user.has_perm(opts.get_change_permission()): 
    88         #raise PermissionDenied     
     95    object_model = rlp.type_ct.model_class() 
     96    if not request.user.has_perm(object_model._meta.app_label + '.' + object_model._meta.get_change_permission()): 
     97        raise PermissionDenied 
    8998     
    9099    manip = ChangeRLPManipulator() 
     
    103112        return HttpResponse(simplejson.dumps(msg), 'text/javascript') 
    104113    request.user.message_set.create(message=msg['text']) 
    105     return HttpResponseRedirect("../../../../../../%s/%s/%s" % (new_rlp.type._meta.app_label, new_rlp.type._meta.module_name , str(rlp.type_id))) 
     114    return HttpResponseRedirect("../../../../../../%s/%s/%s" % (object_model._meta.app_label, object_model._meta.module_name , str(rlp.type_id)))