middleware.py 1.0 KB

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