diff options
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) |