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
from auf.django.references import models as ref
-from project.lib import get_employe_from_user
from project.decorators import redirect_interdiction
from project.decorators import drh_or_admin_required
+from project.decorators import region_protected
+from project.utils import get_employe_from_user
from project.rh import models as rh
from project.rh import graph as rh_graph
from project.rh.change_list import RechercheTemporelle
-
from project.rh.lib import calc_remun
from project.rh.masse_salariale import MasseSalariale
from project.rh.templatetags.rapports import SortHeaders
# pas de reference a DAE devrait etre refactorisé
-from project.dae.utils import get_employe_from_user
from project.dae.workflow import grp_drh, grp_correspondants_rh
c['data'] = data
return render(request, 'rh/rapports/postes_service.html', c)
-
-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
-
-
@region_protected(rh.Dossier)
def dossier_apercu(request, dossier_id):
d = get_object_or_404(rh.Dossier, pk=dossier_id)