from django.core.urlresolvers import reverse
from django.utils.http import urlquote
-from project.groups import grp_drh, grp_drh2
+from project.groups import grp_drh, grp_drh2, grp_correspondants_rh
+from project.utils import get_employe_from_user
+
def redirect_interdiction(request, msg=u"Vous n'avez pas accès à cette page"):
"""
return redirect_interdiction(request, msg)
return inner
+
+def region_protected(model):
+ def wrapper(func):
+ def wrapped(request, id):
+ if request.user.is_superuser:
+ return func(request, id)
+ user_groups = request.user.groups.all()
+ if grp_drh in user_groups:
+ return func(request, id)
+ if grp_correspondants_rh in user_groups:
+ employe = get_employe_from_user(request.user)
+ q = Q(**{
+ model.prefix_implantation: employe.implantation.region
+ })
+ qs = model.objects.filter(q)
+ if int(id) in [o.id for o in qs]:
+ return func(request, id)
+ return redirect_interdiction(request)
+ return wrapped
+ return wrapper