src/ldt/ldt/ldt_utils/security.py
changeset 228 94fdb72b7d56
child 229 fce9a02cc0a2
equal deleted inserted replaced
216:3dcd742acc13 228:94fdb72b7d56
       
     1 from django.conf import settings
       
     2 from ldt.ldt_utils.models import Project
       
     3 
       
     4 
       
     5 def group_security(func):
       
     6     def wrapper(request, *args, **kwargs):
       
     7         if settings.USE_GROUP_PERMISSIONS:
       
     8             if not request.user:
       
     9                 raise AttributeError("A user should be set in the request.")
       
    10 
       
    11             Project.objects_safe.check_perm_for(request.user)
       
    12             old_project_manager = Project.objects
       
    13             Project.objects = Project.objects_safe
       
    14             
       
    15             response = func(request, *args, **kwargs)
       
    16             
       
    17             Project.objects = old_project_manager            
       
    18             Project.objects_safe.stop_checking()
       
    19             
       
    20         else:
       
    21             response = func(request, *args, **kwargs)
       
    22         return response
       
    23     return wrapper
       
    24