panels.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from debug_toolbar.panels import Panel
  2. from django.template.loader import render_to_string
  3. from django.utils.translation import ugettext_lazy as _
  4. class MockUser(object):
  5. def is_authenticated(self):
  6. return False
  7. class MisagoACLPanel(Panel):
  8. """
  9. Panel that displays current user's ACL
  10. """
  11. title = _('Misago User ACL')
  12. template = 'misago/acl_debug.html'
  13. @property
  14. def nav_subtitle(self):
  15. misago_user = self.get_stats().get('misago_user')
  16. if misago_user.is_authenticated():
  17. return misago_user.username
  18. else:
  19. return _("Anonymous user")
  20. def process_response(self, request, response):
  21. if hasattr(request, 'user'):
  22. if hasattr(request.user, 'acl'):
  23. misago_user = request.user
  24. misago_acl = request.user.acl
  25. else:
  26. misago_user = MockUser()
  27. misago_acl = {}
  28. else:
  29. misago_user = MockUser()
  30. misago_acl = {}
  31. self.record_stats({
  32. 'misago_user': misago_user,
  33. 'misago_acl': misago_acl,
  34. })