summaryrefslogtreecommitdiff
path: root/postgresqleu/util/middleware.py
diff options
context:
space:
mode:
authorMagnus Hagander2018-03-29 14:02:59 +0000
committerMagnus Hagander2018-03-29 14:02:59 +0000
commitee0dd6bd75942ea7c4cd3afe1a99551adccf43f3 (patch)
tree92666904043b7e20e7f24fa2e7b0394009657cc5 /postgresqleu/util/middleware.py
parent57edb5b4b96a543158f05e2e4732d37d6852d236 (diff)
Add a middleware to support redirects using raise
This is maybe not pretty, but very convenient..
Diffstat (limited to 'postgresqleu/util/middleware.py')
-rw-r--r--postgresqleu/util/middleware.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/postgresqleu/util/middleware.py b/postgresqleu/util/middleware.py
index 903bd834..fcda5f7c 100644
--- a/postgresqleu/util/middleware.py
+++ b/postgresqleu/util/middleware.py
@@ -1,4 +1,5 @@
from django import http
+from django import shortcuts
from django.conf import settings
import base64
@@ -69,3 +70,13 @@ class GlobalLoginMiddleware(object):
response.status_code = 401
response['WWW-Authenticate'] = 'Basic realm={0}'.format(settings.SITEBASE)
return response
+
+# Ability to redirect using raise()
+class RedirectException(Exception):
+ def __init__(self, url):
+ self.url = url
+
+class RedirectMiddleware(object):
+ def process_exception(self, request, exception):
+ if isinstance(exception, RedirectException):
+ return shortcuts.redirect(exception.url)