'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'postgresqleu.util.middleware.FilterPersistMiddleware',
+ 'postgresqleu.util.middleware.RedirectMiddleware',
]
CSRF_FAILURE_VIEW='postgresqleu.views.csrf_failure'
from django import http
+from django import shortcuts
from django.conf import settings
import base64
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)