Added logging to the acls tag

This commit is contained in:
Roberto Rosario
2011-12-25 03:20:16 -04:00
parent 8ab692ddc8
commit 53bf3d940d

View File

@@ -1,10 +1,14 @@
import logging
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.template import (TemplateSyntaxError, Library, from django.template import (TemplateSyntaxError, Library,
Node, Variable, VariableDoesNotExist) Node, Variable, VariableDoesNotExist)
from acls.models import AccessEntry from acls.models import AccessEntry
register = Library() register = Library()
logger = logging.getLogger(__name__)
class CheckAccessNode(Node): class CheckAccessNode(Node):
@@ -15,14 +19,19 @@ class CheckAccessNode(Node):
def render(self, context): def render(self, context):
permission_list = Variable(self.permission_list).resolve(context) permission_list = Variable(self.permission_list).resolve(context)
logger.debug('permission_list: %s' % u','.join([unicode(p) for p in permission_list]))
try: try:
# Check access_object, useful for document_page views # Check access_object, useful for document_page views
obj = Variable('access_object').resolve(context) obj = Variable('access_object').resolve(context)
logger.debug('access_object: %s' % obj)
except VariableDoesNotExist: except VariableDoesNotExist:
try: try:
obj = Variable(self.obj).resolve(context) obj = Variable(self.obj).resolve(context)
logger.debug('obj: %s' % obj)
except VariableDoesNotExist: except VariableDoesNotExist:
context[u'access'] = True context[u'access'] = True
logger.debug('no obj, access True')
return u'' return u''
if not permission_list: if not permission_list:
@@ -32,18 +41,22 @@ class CheckAccessNode(Node):
return u'' return u''
requester = Variable(self.requester).resolve(context) requester = Variable(self.requester).resolve(context)
logger.debug('requester: %s' % requester)
if obj: if obj:
try: try:
AccessEntry.objects.check_accesses(permission_list, requester, obj) AccessEntry.objects.check_accesses(permission_list, requester, obj)
except PermissionDenied: except PermissionDenied:
context[u'access'] = False context[u'access'] = False
logger.debug('access: False')
return u'' return u''
else: else:
context[u'access'] = True context[u'access'] = True
logger.debug('access: True')
return u'' return u''
else: else:
context[u'access'] = False context[u'access'] = False
logger.debug('No object, access: False')
return u'' return u''