From 0fa3a07a732c3365528727519d7b755822651484 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 20 Dec 2011 02:31:01 -0400 Subject: [PATCH] Improve acl tag logic --- apps/acls/templatetags/acl_tags.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/apps/acls/templatetags/acl_tags.py b/apps/acls/templatetags/acl_tags.py index 3467a7aa49..f180cfe8f9 100644 --- a/apps/acls/templatetags/acl_tags.py +++ b/apps/acls/templatetags/acl_tags.py @@ -25,21 +25,25 @@ class CheckAccessNode(Node): context[u'access'] = True return u'' - requester = Variable(self.requester).resolve(context) - - if not permission_list or not obj: + if not permission_list: # There is no permissions list to check against which means # this link is available for all context[u'access'] = True return u'' - try: - AccessEntry.objects.check_accesses(permission_list, requester, obj) - except PermissionDenied: - context[u'access'] = False - return u'' + requester = Variable(self.requester).resolve(context) + + if obj: + try: + AccessEntry.objects.check_accesses(permission_list, requester, obj) + except PermissionDenied: + context[u'access'] = False + return u'' + else: + context[u'access'] = True + return u'' else: - context[u'access'] = True + context[u'access'] = False return u''