Non authenticated users aren't allowed to use forum for now
[edumed.git] / forum / middleware.py
diff --git a/forum/middleware.py b/forum/middleware.py
new file mode 100644 (file)
index 0000000..fb0a605
--- /dev/null
@@ -0,0 +1,14 @@
+from urllib import urlencode
+
+from django.contrib.auth import REDIRECT_FIELD_NAME
+from django.http import HttpResponseRedirect
+from django.core.urlresolvers import reverse
+from django_cas.views import login as cas_login
+
+
+class ForumMiddleware:
+    def process_request(self, request):
+        if request.path.startswith(reverse('pybb:index')) \
+            and (not hasattr(request, 'user') or not request.user.is_authenticated()):
+            params = urlencode({REDIRECT_FIELD_NAME: request.get_full_path()})
+            return HttpResponseRedirect(reverse(cas_login) + '?' + params)