Improve permission granting and revoking messages, improve navigation feedback

This commit is contained in:
Roberto Rosario
2012-01-09 04:51:01 -04:00
parent 86147c234b
commit 5230b9ca53

View File

@@ -110,7 +110,6 @@ def acl_detail_for(request, actor, obj, navigation_object=None):
'attribute': encapsulate(lambda permission: two_state_template(AccessEntry.objects.has_access(permission, actor, obj)))
},
],
#'hide_link': True,
'hide_object': True,
}
},
@@ -187,7 +186,7 @@ def acl_grant(request):
for requester, obj_ps in items.items():
for obj, ps in obj_ps.items():
title_suffix.append(_(u' and ').join([u'"%s"' % unicode(p) for p in ps]))
title_suffix.append(_(u', ').join([u'"%s"' % unicode(p) for p in ps]))
title_suffix.append(_(u' for %s') % obj)
title_suffix.append(_(u' to %s') % requester)
@@ -281,7 +280,7 @@ def acl_revoke(request):
for requester, obj_ps in items.items():
for obj, ps in obj_ps.items():
title_suffix.append(_(u' and ').join([u'"%s"' % unicode(p) for p in ps]))
title_suffix.append(_(u', ').join([u'"%s"' % unicode(p) for p in ps]))
title_suffix.append(_(u' for %s') % obj)
title_suffix.append(_(u' from %s') % requester)
@@ -372,10 +371,10 @@ def acl_new_holder_for(request, obj, extra_context=None, navigation_object=None)
# Setup views
def acl_setup_valid_classes(request):
Permission.objects.check_permissions(request.user, [ACLS_CLASS_VIEW_ACL])
logger.debug('DefaultAccessEntry.get_classes(): %s' % get_classes())
logger.debug('DefaultAccessEntry.get_classes(): %s' % DefaultAccessEntry.get_classes())
context = {
'object_list': get_classes(),
'object_list': DefaultAccessEntry.get_classes(),
'title': _(u'classes'),
'extra_columns': [
{'name': _(u'class'), 'attribute': encapsulate(lambda x: object_w_content_type_icon(x.source_object))},
@@ -388,7 +387,7 @@ def acl_setup_valid_classes(request):
def acl_class_acl_list(request, access_object_class_gid):
Permission.objects.check_permissions(request.user, [ACLS_CLASS_VIEW_ACL, ACLS_CLASS_EDIT_ACL])
Permission.objects.check_permissions(request.user, [ACLS_CLASS_VIEW_ACL])
access_object_class = AccessObjectClass.get(gid=access_object_class_gid)
context = {
@@ -400,21 +399,23 @@ def acl_class_acl_list(request, access_object_class_gid):
],
'hide_object': True,
'access_object_class': access_object_class,
'object': access_object_class,
}
return render_to_response('generic_list.html', context,
context_instance=RequestContext(request))
def acls_class_acl_detail(request, access_object_class_gid, holder_object_gid):
Permission.objects.check_permissions(request.user, [ACLS_CLASS_VIEW_ACL, ACLS_CLASS_EDIT_ACL])
def acl_class_acl_detail(request, access_object_class_gid, holder_object_gid):
Permission.objects.check_permissions(request.user, [ACLS_CLASS_VIEW_ACL])
try:
actor = AccessHolder.get(gid=holder_object_gid)
access_object_class = AccessObjectClass.get(gid=access_object_class_gid)
except ObjectDoesNotExist:
raise Http404
permission_list = list(access_object_class.get_class_permissions())
#permission_list = list(access_object_class.get_class_permissions())
permission_list = get_class_permissions_for(access_object_class.content_type.model_class())
#TODO : get all globally assigned permission, new function get_permissions_for_holder (roles aware)
subtemplates_list = [
{
@@ -462,7 +463,7 @@ def acl_class_new_holder_for(request, access_object_class_gid):
try:
access_holder = ClassAccessHolder.get(form.cleaned_data['holder_gid'])
return HttpResponseRedirect(reverse('acls_class_acl_detail', args=[access_object_class.gid, access_holder.gid]))
return HttpResponseRedirect(reverse('acl_class_acl_detail', args=[access_object_class.gid, access_holder.gid]))
except ObjectDoesNotExist:
raise Http404
else:
@@ -512,7 +513,7 @@ def acl_class_multiple_grant(request):
for requester, obj_ps in items.items():
for obj, ps in obj_ps.items():
title_suffix.append(_(u' and ').join([u'"%s"' % unicode(p) for p in ps]))
title_suffix.append(_(u', ').join([u'"%s"' % unicode(p) for p in ps]))
title_suffix.append(_(u' for %s') % obj)
title_suffix.append(_(u' to %s') % requester)
@@ -592,7 +593,7 @@ def acl_class_multiple_revoke(request):
for requester, obj_ps in items.items():
for obj, ps in obj_ps.items():
title_suffix.append(_(u' and ').join([u'"%s"' % unicode(p) for p in ps]))
title_suffix.append(_(u', ').join([u'"%s"' % unicode(p) for p in ps]))
title_suffix.append(_(u' for %s') % obj)
title_suffix.append(_(u' from %s') % requester)