middleware.py 1.2 KB

123456789101112131415161718192021222324252627282930
  1. from django.conf import settings
  2. from misago.security.firewalls import *
  3. from misago.security.models import JamCache
  4. from misago.themes.theme import Theme
  5. class FirewallMiddleware(object):
  6. firewall_admin = FirewallAdmin()
  7. firewall_forum = FirewallForum()
  8. def process_request(self, request):
  9. # Admin firewall test
  10. if settings.ADMIN_PATH and self.firewall_admin.behind_firewall(request.path_info):
  11. request.firewall = self.firewall_admin
  12. request.theme.set_theme('admin')
  13. else:
  14. request.firewall = self.firewall_forum
  15. def process_view(self, request, callback, callback_args, callback_kwargs):
  16. return request.firewall.process_view(request, callback, callback_args, callback_kwargs)
  17. class JamMiddleware(object):
  18. def process_request(self, request):
  19. if request.user.is_crawler():
  20. return None
  21. try:
  22. request.jam = request.session['jam']
  23. except KeyError:
  24. request.jam = JamCache()
  25. request.session['jam'] = request.jam
  26. if not request.firewall.admin:
  27. request.jam.check_for_updates(request)