Added logging to the acls tag
This commit is contained in:
@@ -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''
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user