fix DRH2
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 19 Mar 2012 18:50:06 +0000 (14:50 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 19 Mar 2012 18:50:06 +0000 (14:50 -0400)
project/dae/decorators.py

index 49f53fa..0d8d55f 100644 (file)
@@ -6,7 +6,8 @@ from django.contrib.auth.decorators import user_passes_test
 from django.core.urlresolvers import reverse
 from django.http import HttpResponseRedirect
 from django.shortcuts import get_object_or_404
-from workflow import dae_groupes, ETATS_EDITABLE, ETATS_VALIDE, grp_drh
+from workflow import dae_groupes, ETATS_EDITABLE, ETATS_VALIDE, \
+        grp_drh, grp_drh2
 from project.dae import models as dae
 from project.rh import models as rh
 from utils import get_employe_from_user
@@ -142,10 +143,11 @@ def employe_dans_ma_region_ou_service(fn):
 def dossier_est_modifiable(fn):
     def inner(request, *args, **kwargs):
         dossier_id = kwargs.get('dossier_id', None)
+        user_groupes = request.user.groups.all()
         if dossier_id is not None:
             dossier = dae.Dossier.objects.get(id=dossier_id)
             if not (dossier.etat in ETATS_EDITABLE and
-                    (grp_drh in request.user.groups.all() or
+                    (grp_drh in user_groupes or grp_drh2 in user_groupes or
                      dossier in dae.Dossier.objects.mes_choses_a_faire(request.user).all())):
                 msg = u"Ce dossier d'embauche ne peut plus être modifié."
                 return redirect_interdiction(request, msg)
@@ -173,8 +175,9 @@ def get_contrat(fn):
     def inner(request, contrat_id, *args, **kwargs):
         contrat = get_object_or_404(dae.Contrat, pk=contrat_id)
         dossier = contrat.dossier
+        user_groupes = request.user.groups.all()
         if not (dossier.etat in ETATS_VALIDE and
-                (grp_drh in request.user.groups.all() or
+                (grp_drh in user_groupes or grp_drh2 in user_groupes or
                  dossier in dae.Dossier.objects.mes_choses_a_faire(request.user).all())):
             return redirect_interdiction(request)
         return fn(request, contrat, *args, **kwargs)