diff -r 000000000000 -r 40c8f766c9b8 src/cm/middleware.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/middleware.py Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,19 @@ +from cm.exception import UnauthorizedException +from django.conf import settings +from django.http import HttpResponseServerError,HttpResponseRedirect +from django.core.urlresolvers import reverse + +class CmMiddleware(object): + + def process_exception(self, request, exception): + if settings.DEBUG: + import sys, traceback + traceback.print_exc() + if type(exception) == UnauthorizedException: + if request.user.is_anonymous(): + login_url = reverse('login') + '?next=%s' %request.META['PATH_INFO'] + return HttpResponseRedirect(login_url) + else: + redirect_url = reverse('unauthorized') + return HttpResponseRedirect(redirect_url) + raise