Changeset 3629
- Timestamp:
- 08/20/06 17:46:38 (2 years ago)
- Files:
-
- django/branches/per-object-permissions/django/contrib/admin/templates/admin/change_form.html (modified) (1 diff)
- django/branches/per-object-permissions/django/contrib/admin/templatetags/adminapplist.py (modified) (1 diff)
- django/branches/per-object-permissions/django/contrib/admin/templatetags/admin_modify.py (modified) (1 diff)
- django/branches/per-object-permissions/django/contrib/admin/views/main.py (modified) (1 diff)
- django/branches/per-object-permissions/django/contrib/admin/views/row_level_permissions.py (modified) (1 diff)
- django/branches/per-object-permissions/django/contrib/auth/models.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/per-object-permissions/django/contrib/admin/templates/admin/change_form.html
r3623 r3629 68 68 </form> 69 69 70 {% comment %}71 {% if new_rlp_form %}72 <div id="row_level_perm_container">73 {% include "admin/row_level_permission.html" %}74 </div>75 {% endif %}76 {% endcomment %}77 70 78 71 </div> django/branches/per-object-permissions/django/contrib/admin/templatetags/adminapplist.py
r3627 r3629 30 30 31 31 perms = { 32 'add': user.contains_permission("%s.%s" % (app_label, m._meta.get_add_permission()) , m),32 'add': user.contains_permission("%s.%s" % (app_label, m._meta.get_add_permission())), 33 33 'change': user.contains_permission("%s.%s" % (app_label, m._meta.get_change_permission()), m), 34 34 'delete': user.contains_permission("%s.%s" % (app_label, m._meta.get_delete_permission()), m), django/branches/per-object-permissions/django/contrib/admin/templatetags/admin_modify.py
r3464 r3629 43 43 and (change or context['show_delete'])), 44 44 'show_save_as_new': not is_popup and change and opts.admin.save_as, 45 'show_save_and_add_another': not is_popup and (not opts.admin.save_as or context['add']) ,45 'show_save_and_add_another': not is_popup and (not opts.admin.save_as or context['add']) and context['has_add_permission'], 46 46 'show_save_and_continue': not is_popup and context['has_change_permission'], 47 47 'show_save': True django/branches/per-object-permissions/django/contrib/admin/views/main.py
r3628 r3629 200 200 'add': add, 201 201 'change': change, 202 'has_delete_permission': context['perms'][app_label][opts.get_delete_permission()], 203 'has_change_permission': context['perms'][app_label][opts.get_change_permission()], 202 'has_delete_permission': context['user'].has_perm(app_label+"."+opts.get_delete_permission(), original), 203 'has_change_permission': context['user'].has_perm(app_label+"."+opts.get_change_permission(), original), 204 'has_add_permission': context['user'].has_perm(app_label+"."+opts.get_add_permission()), 204 205 'has_file_field': opts.has_field_type(models.FileField), 205 206 'has_absolute_url': hasattr(model, 'get_absolute_url'), django/branches/per-object-permissions/django/contrib/admin/views/row_level_permissions.py
r3628 r3629 45 45 list_per_page) 46 46 page = int(request.GET.get('page', 1))-1 47 rlp_list = paginator.get_page(page) 47 try: 48 rlp_list = paginator.get_page(page) 49 except InvalidPage: 50 rlp_list = [] 48 51 paginator_context = { 49 52 "is_paginated": paginator.has_next_page(0), django/branches/per-object-permissions/django/contrib/auth/models.py
r3627 r3629 338 338 return True 339 339 340 def contains_permission(self, perm, model ):340 def contains_permission(self, perm, model=None): 341 341 if self.has_perm(perm): 342 342 return True 343 perm = perm[perm.index('.')+1:] 344 return self.contains_row_level_perm(perm, model) 345 343 if model and model._meta.row_level_permissions: 344 perm = perm[perm.index('.')+1:] 345 return self.contains_row_level_perm(perm, model) 346 return False 347 346 348 def contains_row_level_perm(self, perm, model): 347 349 model_ct = ContentType.objects.get_for_model(model) 348 count = self.row_level_permissions_owned.filter(model_ct=model_ct.id).count() 350 if isinstance(perm, str): 351 permission = Permission.objects.get(codename__exact=perm, content_type=model_ct.id) 352 else: 353 permission = perm 354 count = self.row_level_permissions_owned.filter(model_ct=model_ct.id, permission=permission.id).count() 355 349 356 if count>0: 350 357 return True 351 return self.contains_group_row_level_perms(perm , model_ct)358 return self.contains_group_row_level_perms(permission, model_ct) 352 359 353 360 def contains_group_row_level_perms(self, perm, ct): … … 368 375 AND rlp.%s = 0 369 376 AND rlp.%s = %%s 377 AND rlp.%s = %%s 370 378 AND rlp.%s = %%s""" % ( 371 379 backend.quote_name('auth_user_groups'), backend.quote_name('auth_rowlevelpermission'), … … 373 381 backend.quote_name('group_id'), backend.quote_name('user_id'), 374 382 backend.quote_name('negative'), backend.quote_name('owner_ct_id'), 375 backend.quote_name('model_ct_id') )383 backend.quote_name('model_ct_id'), backend.quote_name('permission_id')) 376 384 377 cursor.execute(sql, [self.id, ContentType.objects.get_for_model(Group).id, ct.id ])385 cursor.execute(sql, [self.id, ContentType.objects.get_for_model(Group).id, ct.id, perm.id]) 378 386 count = int(cursor.fetchone()[0]) 379 387 return (count>0)
