src/ldt/ldt/security/middleware.py
author verrierj
Wed, 16 Nov 2011 12:34:49 +0100
changeset 241 8649bd4f2443
parent 240 a46cb257d8ee
child 245 953228fcbb56
permissions -rw-r--r--
Moved threadlocals to utils
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
239
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
     1
from django.conf import settings
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
     2
from django.core.exceptions import MiddlewareNotUsed
241
8649bd4f2443 Moved threadlocals to utils
verrierj
parents: 240
diff changeset
     3
from ldt.security.utils import protect_models, unprotect_models, _thread_locals
239
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
     4
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
     5
class SecurityMiddleware(object):
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
     6
    
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
     7
    def __init__(self):
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
     8
        if not hasattr(settings, 'USE_GROUP_PERMISSIONS') or not settings.USE_GROUP_PERMISSIONS:
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
     9
            raise MiddlewareNotUsed()
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
    10
241
8649bd4f2443 Moved threadlocals to utils
verrierj
parents: 240
diff changeset
    11
    def process_request(self, request):
8649bd4f2443 Moved threadlocals to utils
verrierj
parents: 240
diff changeset
    12
        _thread_locals.user = request.user 
8649bd4f2443 Moved threadlocals to utils
verrierj
parents: 240
diff changeset
    13
        protect_models()      
239
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
    14
    
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
    15
    def process_response(self, request, response):
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
    16
        unprotect_models()
241
8649bd4f2443 Moved threadlocals to utils
verrierj
parents: 240
diff changeset
    17
        del _thread_locals.user
8649bd4f2443 Moved threadlocals to utils
verrierj
parents: 240
diff changeset
    18
                
239
352be36c9fd7 Moved code about group security into a separate module
verrierj
parents:
diff changeset
    19
        return response