middleware.py 681 B

1234567891011121314151617
  1. from misago.banning.models import BanCache
  2. from misago.users.models import Guest
  3. class BanningMiddleware(object):
  4. def process_request(self, request):
  5. if request.user.is_crawler():
  6. return None
  7. try:
  8. request.ban = request.session['ban']
  9. except KeyError:
  10. request.ban = BanCache()
  11. request.session['ban'] = request.ban
  12. if not request.firewall.admin:
  13. request.ban.check_for_updates(request)
  14. # Make sure banned session is downgraded to guest level
  15. if request.user.is_banned() or request.ban.is_banned():
  16. request.session.sign_out(request)