Merge "Split the dashboard into different apps, add tests"
[pharos.git] / tools / pharos-dashboard / account / middleware.py
diff --git a/tools/pharos-dashboard/account/middleware.py b/tools/pharos-dashboard/account/middleware.py
new file mode 100644 (file)
index 0000000..f5170ba
--- /dev/null
@@ -0,0 +1,15 @@
+from django.core.exceptions import ObjectDoesNotExist
+from django.utils import timezone
+from django.utils.deprecation import MiddlewareMixin
+
+
+class TimezoneMiddleware(MiddlewareMixin):
+    """
+    Activate the timezone from request.user.userprofile if user is authenticated,
+    deactivate the timezone otherwise and use default (UTC)
+    """
+    def process_request(self, request):
+        if request.user.is_authenticated:
+            timezone.activate(request.user.userprofile.timezone)
+        else:
+            timezone.deactivate()