diff options
author | Magnus Hagander | 2018-03-29 14:02:59 +0000 |
---|---|---|
committer | Magnus Hagander | 2018-03-29 14:02:59 +0000 |
commit | ee0dd6bd75942ea7c4cd3afe1a99551adccf43f3 (patch) | |
tree | 92666904043b7e20e7f24fa2e7b0394009657cc5 /postgresqleu/util/middleware.py | |
parent | 57edb5b4b96a543158f05e2e4732d37d6852d236 (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.py | 11 |
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) |