middleware.py 1.1 KB

12345678910111213141516171819202122232425262728
  1. from django.conf import settings
  2. from django.utils import timezone
  3. from django.utils.translation import ugettext_lazy as _
  4. from misago.messages import Message
  5. def set_timezone(new_tz):
  6. if settings.USE_TZ:
  7. try:
  8. import pytz
  9. timezone.activate(pytz.timezone(new_tz))
  10. except ImportError:
  11. pass
  12. class UserMiddleware(object):
  13. def process_request(self, request):
  14. if request.user.is_authenticated():
  15. # Set user timezone and rank
  16. request.session.rank = request.user.rank_id
  17. set_timezone(request.user.timezone)
  18. # Display "welcome back!" message
  19. if request.session.remember_me:
  20. request.messages.set_message(Message(_("Welcome back, %(username)s! We've signed you in automatically for your convenience.") % {'username': request.user.username}), 'info')
  21. else:
  22. # Set guest's timezone and empty rank
  23. set_timezone(request.settings['default_timezone'])
  24. request.session.rank = None