src/ldt/ldt/ldt_utils/security.py
author verrierj
Fri, 28 Oct 2011 11:01:40 +0200
changeset 228 94fdb72b7d56
child 229 fce9a02cc0a2
permissions -rw-r--r--
Users can add their own groups

from django.conf import settings
from ldt.ldt_utils.models import Project


def group_security(func):
    def wrapper(request, *args, **kwargs):
        if settings.USE_GROUP_PERMISSIONS:
            if not request.user:
                raise AttributeError("A user should be set in the request.")

            Project.objects_safe.check_perm_for(request.user)
            old_project_manager = Project.objects
            Project.objects = Project.objects_safe
            
            response = func(request, *args, **kwargs)
            
            Project.objects = old_project_manager            
            Project.objects_safe.stop_checking()
            
        else:
            response = func(request, *args, **kwargs)
        return response
    return wrapper