src/cm/middleware.py
author reno
Mon, 30 Nov 2009 13:46:17 +0100
changeset 12 f69ff46d3240
parent 0 40c8f766c9b8
child 285 1070d52adc11
permissions -rw-r--r--
various notification changes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
from cm.exception import UnauthorizedException 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
from django.conf import settings
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
from django.http import HttpResponseServerError,HttpResponseRedirect
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
from django.core.urlresolvers import reverse
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
class CmMiddleware(object):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
    def process_exception(self, request, exception):
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
        if settings.DEBUG:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
            import sys, traceback
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
            traceback.print_exc()
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
        if type(exception) == UnauthorizedException:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
            if request.user.is_anonymous():
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
                login_url = reverse('login') + '?next=%s' %request.META['PATH_INFO']
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
                return HttpResponseRedirect(login_url)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
            else:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
                redirect_url = reverse('unauthorized')
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
                return HttpResponseRedirect(redirect_url)
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
        raise