#3774
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Tue, 2 Oct 2012 15:12:10 +0000 (11:12 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Tue, 2 Oct 2012 15:12:10 +0000 (11:12 -0400)
14 files changed:
project/dae/groups.py
project/dae/managers.py
project/dae/test/poste.py
project/dae/views.py
project/dae/workflow.py
project/groups.py
project/permissions.py
project/rh/admin.py
project/rh/managers.py
project/rh/test/common.py
project/rh/test/dossier.py
project/rh/test/employe.py
project/rh/test/poste.py
project/rh/test/rapport.py

index 7d92ace..4de4fd1 100644 (file)
@@ -11,5 +11,6 @@ dae_groupes = (
     groups.HAUTE_DIRECTION,
     groups.ACCIOR,
     groups.ABF,
+    groups.FINANCE,
     groups.SERVICE_UTILISATEURS,
 )
index f4bc09e..f712815 100644 (file)
@@ -27,6 +27,7 @@ class TodoManagerMixin(object):
                 elif g not in (
                     groups.ACCIOR,
                     groups.ABF,
+                    groups.FINANCE,
                     groups.HAUTE_DIRECTION,
                     groups.DRH_NIVEAU_1,
                     groups.DRH_NIVEAU_2,
index 6bf619f..15a342b 100644 (file)
@@ -186,28 +186,35 @@ class PosteTest(DaeTest):
         self._test_drh2()
         self._test_acces_ok(self.url)
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
         Un membre de l'ACCIOR ne peut pas ajouter un poste
         """
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas ajouter un poste
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas ajouter un poste
+        """
+        self._test_grp_finance()
+        self._test_acces_ko(self.url)
+
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction ne peut pas ajouter un poste
         """
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur ne peut pas ajouter un poste
         """
index 94d210f..e71a8d2 100644 (file)
@@ -35,9 +35,12 @@ from project.dae.mail import send_drh_finalisation_mail
 from project.dae.workflow import \
         DOSSIER_ETAT_FINALISE, DOSSIER_ETAT_REGION_FINALISATION, \
         DOSSIER_ETAT_DRH_FINALISATION, POSTE_ETAT_FINALISE
-from project.decorators import \
-        redirect_interdiction, drh_or_admin_required, in_drh_or_admin
+from project.decorators import redirect_interdiction,\
+        drh_or_admin_required,\
+        in_drh_or_admin,\
+        in_one_of_group
 from project.rh import models as rh
+from project import groups
 
 
 # Helpers
@@ -113,6 +116,11 @@ def poste_importer(request, id):
 @dae_groupe_requis
 @poste_dans_ma_region_ou_service
 @poste_est_modifiable
+@in_one_of_group((groups.CORRESPONDANT_RH,
+    groups.ADMINISTRATEURS,
+    groups.DIRECTEUR_DE_BUREAU,
+    groups.DRH_NIVEAU_1,
+    groups.DRH_NIVEAU_2))
 def poste(request, key=None):
     """ Formulaire pour un poste.
 
index 9b0ba68..d616d86 100644 (file)
@@ -12,6 +12,7 @@ dae_groupes = (
     groups.DRH_NIVEAU_2,
     groups.ACCIOR,
     groups.ABF,
+    groups.FINANCE,
     groups.HAUTE_DIRECTION,
     groups.SERVICE_UTILISATEURS,
 )
@@ -26,6 +27,7 @@ POSTE_ETAT_DRH_2 = 'DRH_2'
 POSTE_ETAT_DEMANDE_MODIF = 'DEMANDE_MODIF'
 POSTE_ETAT_ACCIOR = 'ACCIOR'
 POSTE_ETAT_ABF = 'ABF'
+POSTE_ETAT_FINANCE = 'FINANCE'
 POSTE_ETAT_HAUTE_DIRECTION = 'HAUTE_DIRECTION'
 POSTE_ETAT_DEMANDE_JUSTIF = 'DEMANDE_JUSTIF'
 POSTE_ETAT_REGION_FINALISATION = 'REGION_FINALISATION'
@@ -43,6 +45,7 @@ POSTE_ACTION_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF
 POSTE_ACTION_RETOUR_DEMANDE_MODIF = 'RETOUR_DEMANDE_MODIF'
 POSTE_ACTION_ENVOYER_ACCIOR = POSTE_ETAT_ACCIOR
 POSTE_ACTION_ENVOYER_ABF = POSTE_ETAT_ABF
+POSTE_ACTION_ENVOYER_FINANCE = POSTE_ETAT_FINANCE
 POSTE_ACTION_ENVOYER_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
 POSTE_ACTION_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF
 POSTE_ACTION_RETOUR_DEMANDE_JUSTIF = 'RETOUR_DEMANDE_JUSTIF'
@@ -61,6 +64,7 @@ POSTE_ETATS = {
     POSTE_ETAT_DEMANDE_MODIF: u"Demande de modification",
     POSTE_ETAT_ACCIOR: u"ACCIOR",
     POSTE_ETAT_ABF: u"ABF",
+    POSTE_ETAT_FINANCE: u"Finance",
     POSTE_ETAT_HAUTE_DIRECTION: u"Validation : Secrétaire général / Recteur",
     POSTE_ETAT_DEMANDE_JUSTIF: u"Demande de justification",
     POSTE_ETAT_REGION_FINALISATION: u'Retour à la région',
@@ -78,6 +82,7 @@ POSTE_ETATS_BOUTONS = {
     POSTE_ETAT_DEMANDE_MODIF: u"Envoyer une demande de modification",
     POSTE_ETAT_ACCIOR: u"Envoyer à l&#39;ACCIOR",
     POSTE_ETAT_ABF: u"Envoyer à l&#39;ABF",
+    POSTE_ETAT_FINANCE: u"Envoyer aux finances",
     POSTE_ETAT_HAUTE_DIRECTION: u"Envoyer à la haute direction",
     POSTE_ETAT_DEMANDE_JUSTIF: u"Envoyer une demande de justification",
     POSTE_ETAT_REGION_FINALISATION: u"Retourner à la région pour finalisation",
@@ -140,9 +145,14 @@ POSTE_ACTIONS = {
         'etat_initial': (POSTE_ETAT_ACCIOR, POSTE_ETAT_DRH_2),
         'etat_final': POSTE_ETAT_ABF,
     },
+    POSTE_ACTION_ENVOYER_FINANCE: {
+        'nom': u'Envoyer',
+        'etat_initial': (POSTE_ETAT_ABF, ),
+        'etat_final': POSTE_ETAT_FINANCE,
+    },
     POSTE_ACTION_ENVOYER_HAUTE_DIRECTION: {
         'nom': u'Envoyer',
-        'etat_initial': (POSTE_ETAT_ABF,),
+        'etat_initial': (POSTE_ETAT_FINANCE,),
         'etat_final': POSTE_ETAT_HAUTE_DIRECTION,
     },
     POSTE_ACTION_DEMANDE_JUSTIF: {
@@ -225,11 +235,16 @@ class PosteWorkflow(WorkflowMixin):
         return groups.ACCIOR in user_groups or groups.DRH_NIVEAU_1 in user_groups \
                 or groups.DRH_NIVEAU_2 in user_groups
 
-    def acces_haute_direction(self, action, request):
+    def acces_finance(self, action, request):
         user_groups = [g.name for g in request.user.groups.all()]
         return groups.ABF in user_groups or groups.DRH_NIVEAU_1 in user_groups \
                 or groups.DRH_NIVEAU_2 in user_groups
 
+    def acces_haute_direction(self, action, request):
+        user_groups = [g.name for g in request.user.groups.all()]
+        return groups.FINANCE in user_groups or groups.DRH_NIVEAU_1 in user_groups \
+                or groups.DRH_NIVEAU_2 in user_groups
+
     def acces_region_finalisation(self, action, request):
         user_groups = [g.name for g in request.user.groups.all()]
         return groups.HAUTE_DIRECTION in user_groups or groups.DRH_NIVEAU_1 in user_groups \
@@ -271,6 +286,7 @@ DOSSIER_ETAT_DRH_2 = POSTE_ETAT_DRH_2
 DOSSIER_ETAT_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF
 DOSSIER_ETAT_ACCIOR = POSTE_ETAT_ACCIOR
 DOSSIER_ETAT_ABF = POSTE_ETAT_ABF
+DOSSIER_ETAT_FINANCE = POSTE_ETAT_FINANCE
 DOSSIER_ETAT_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
 DOSSIER_ETAT_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF
 DOSSIER_ETAT_REGION_FINALISATION = POSTE_ETAT_REGION_FINALISATION
@@ -309,6 +325,7 @@ MAP_GROUPE_ETATS_A_FAIRE = {
     groups.DRH_NIVEAU_2: (POSTE_ETAT_DRH_2, DOSSIER_ETAT_DRH_2),
     groups.ACCIOR: (POSTE_ETAT_ACCIOR, DOSSIER_ETAT_ACCIOR),
     groups.ABF: (POSTE_ETAT_ABF, DOSSIER_ETAT_ABF),
+    groups.FINANCE: (POSTE_ETAT_FINANCE, DOSSIER_ETAT_FINANCE),
     groups.HAUTE_DIRECTION: (
         POSTE_ETAT_HAUTE_DIRECTION, DOSSIER_ETAT_HAUTE_DIRECTION
     ),
index 4940faf..ee082db 100644 (file)
@@ -3,36 +3,29 @@
 import auf.django.references.models as ref
 
 CORRESPONDANT_RH = 'Correspondants RH'
-ADMINISTRATEURS ='Administrateurs' 
+ADMINISTRATEURS = 'Administrateurs'
 DIRECTEUR_DE_BUREAU = 'Directeurs de bureau'
 DRH_NIVEAU_1 = 'DRH'
 DRH_NIVEAU_2 = 'DRH-2'
 ACCIOR = 'ACCIOR'
 ABF = 'ABF'
+FINANCE = 'Finance'
 HAUTE_DIRECTION = 'Haute direction'
 SERVICE_UTILISATEURS = 'Service utilisateurs'
 
-# Groupes impliqués dans le Worflow
-#grp_correspondants_rh = safe_create_groupe(name=CORRESPONDANT_RH)
-#grp_administrateurs = safe_create_groupe(name=ADMINISTRATEURS)
-#grp_directeurs_bureau = safe_create_groupe(name=DIRECTEUR_DE_BUREAU)
-#grp_drh = safe_create_groupe(name=DRH_NIVEAU_1)
-#grp_drh2 = safe_create_groupe(name=DRH_NIVEAU_2)
-#grp_accior = safe_create_groupe(name=ACCIOR)
-#grp_abf = safe_create_groupe(name=ABF)
-#grp_haute_direction = safe_create_groupe(name=HAUTE_DIRECTION)
-#grp_service_utilisateurs = safe_create_groupe(name=SERVICE_UTILISATEURS)
 
 def get_employe_from_user(user):
-  """
-  Retourne un employé AUF à partir de son user Django. 
-  """
-  try:
-      employe = ref.Authentification.objects.get(courriel=user.email).id
-      # ajouter coordonnées via ref.Employe? (courriel, tel, etc.)
-  except:
-      raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
-  return employe
+    """
+    Retourne un employé AUF à partir de son user Django.
+    """
+    try:
+        employe = ref.Authentification.objects.get(courriel=user.email).id
+        # ajouter coordonnées via ref.Employe? (courriel, tel, etc.)
+    except:
+        raise Exception(u"L'employé avec le courriel %s n'a pas \
+                été trouvé dans le référentiel." % user.email)
+    return employe
+
 
 def is_user_dans_services_centraux(user):
     employe = get_employe_from_user(user)
@@ -40,5 +33,6 @@ def is_user_dans_services_centraux(user):
         return False
     return employe.implantation_id in (15, 19)
 
+
 def is_user_dans_region(user):
     return not is_user_dans_services_centraux(user)
index 09db52e..c9318b3 100644 (file)
@@ -20,6 +20,12 @@ def user_can_add_obj(user):
         return True
     return False
 
+def user_can_list_obj(user):
+    if user_gere_obj_de_sa_region(user) or \
+            in_drh_or_admin(user):
+        return True
+    return False
+
 def user_can_change_obj(user, obj):
     if in_drh_or_admin(user) or (
             user_gere_obj_de_sa_region(user) and \
index 69cc59b..c257513 100644 (file)
@@ -18,6 +18,7 @@ from project import groups
 from project.decorators import in_drh_or_admin
 from project.rh import models as rh
 from project.permissions import user_gere_obj_de_sa_region, \
+        user_can_list_obj, \
         user_can_add_obj, \
         user_can_change_obj, \
         user_can_delete_obj, \
@@ -171,7 +172,10 @@ class ProtectRegionMixin(object):
         return user_can_add_obj(request.user)
 
     def has_change_permission(self, request, obj=None):
-        return user_can_change_obj(request.user, obj) if obj else True
+        if obj is None:
+            return user_can_list_obj(request.user)
+        else:
+            return user_can_change_obj(request.user, obj)
 
     def has_delete_permission(self, request, obj=None):
         return user_can_delete_obj(request.user, obj) if obj else True
index c1a459a..ff8f303 100644 (file)
@@ -52,6 +52,12 @@ class SecurityManager(models.Manager):
             liste = self.get_query_set().all()
 
         ############################################
+        # TRAITEMENT FINANCE
+        ############################################
+        if groups.FINANCE in groupes:
+            liste = self.get_query_set().all()
+
+        ############################################
         # TRAITEMENT HAUTE DIRECTION
         ############################################
         if groups.HAUTE_DIRECTION in groupes:
index cadadb6..3d79cc2 100644 (file)
@@ -50,6 +50,7 @@ class RhTest(TestCase):
         self.grp_drh2
         self.grp_accior
         self.grp_abf
+        self.grp_finance
         self.grp_haute_direction
         self.grp_service_utilisateurs
         
@@ -145,6 +146,9 @@ class RhTest(TestCase):
         self.grp_abf = Group(name=groups.ABF)
         self.grp_abf.save()
 
+        self.grp_finance = Group(name=groups.FINANCE)
+        self.grp_finance.save()
+
         self.grp_haute_direction = Group(name=groups.HAUTE_DIRECTION)
         self.grp_haute_direction.save()
 
@@ -289,7 +293,9 @@ class RhTest(TestCase):
         response = self.client.get(url, follow=True)
         is_ko = response.status_code in (403, 404) or \
                 'next' in response.context or \
+                'next' in response.context['request'].GET.keys() or \
                 SAML_REDIRECT_FIELD_NAME in response.context['request'].GET.keys()
+        
         self.assertEqual(is_ko, True)
 
     def _test_anonyme(self):
@@ -359,6 +365,16 @@ class RhTest(TestCase):
         credentials = {'username': email, 'password': self.password}
         self.assertTrue(self.client.login(**credentials), "login failed")
 
+    def _test_grp_finance(self):
+        email = "0@test.auf"
+        
+        u = User.objects.get(email=email)
+        self.grp_finance.user_set.add(u)
+        self.grp_finance.save()
+
+        credentials = {'username': email, 'password': self.password}
+        self.assertTrue(self.client.login(**credentials), "login failed")
+
     def _test_grp_haute_direction(self):
         email = "0@test.auf"
         
index cada6d2..19c7f8a 100644 (file)
@@ -62,7 +62,14 @@ class DossierAddTest(RhTest):
         """
         Un membre de l'ABF ne peut pas ajouter un dossier
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def _test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas ajouter un dossier
+        """
+        self._test_grp_finance()
         self._test_acces_ko(self.url)
 
     def _test_grp_haute_direction(self):
@@ -143,7 +150,14 @@ class DossierDeleteTest(RhTest):
         """
         Un membre de l'ABF  ne peut pas supprimer un dossier
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def _test_grp_finance(self):
+        """
+        Un membre de l'ABF  ne peut pas supprimer un dossier
+        """
+        self._test_grp_finance()
         self._test_acces_ko(self.url)
 
     def _test_grp_haute_direction(self):
@@ -231,7 +245,14 @@ class DossierListTest(RhTest):
         """
         Un membre de l'ABF ne peut pas voir les dossiers
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def _test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas voir les dossiers
+        """
+        self._test_grp_finance()
         self._test_acces_ko(self.url)
 
     def _test_grp_haute_direction(self):
index 2ca5076..0662b4c 100644 (file)
@@ -52,28 +52,35 @@ class EmployeAddTest(RhTest):
         self._test_drh2()
         self._test_acces_ok(self.url)
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
         Un membre de l'ACCIOR ne peut pas ajouter un employé
         """
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas ajouter un employé
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas ajouter un employé
+        """
+        self._test_grp_finance()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction ne peut pas ajouter un employé
         """
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur ne peut pas ajouter un employé
         """
@@ -140,21 +147,28 @@ class EmployeDeleteTest(RhTest):
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
-        Un membre de l'ABF  ne peut pas supprimer un employé
+        Un membre de l'ABF ne peut pas supprimer un employé
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_finance(self):
         """
-        Un membre de la haute direction  ne peut pas supprimer un employé
+        Un membre de Finance ne peut pas supprimer un employé
+        """
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def test_grp_haute_direction(self):
+        """
+        Un membre de la haute direction ne peut pas supprimer un employé
         """
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur
         ne peut pas supprimer un employé
@@ -222,21 +236,28 @@ class EmployeListTest(RhTest):
         self._test_drh2()
         self._test_acces_ok(self.url)
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
         Un membre de l'ACCIOR ne peut pas voir les employés
         """
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas voir les employés
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas voir les employés
+        """
+        self._test_grp_finance()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction  ne peut pas voir les employés
         """
@@ -333,21 +354,28 @@ class EmployeApercuTest(RhTest):
         dossiers = self.client.get(self.url2).context['dossiers']
         self.assertEqual(len(dossiers), 1)
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
         Un membre de l'ACCIOR ne peut pas voir les aperçus d'employés
         """
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas voir les aperçus d'employés
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas voir les aperçus d'employés
+        """
+        self._test_grp_finance()
+        self._test_acces_ko(self.url)
+
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction ne peut pas voir
         les aperçus d'employés
@@ -355,7 +383,7 @@ class EmployeApercuTest(RhTest):
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur ne pas pas voir
         les aperçus d'employés
index 06b3896..cc8f875 100644 (file)
@@ -58,21 +58,28 @@ class PosteAddTest(RhTest):
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas ajouter un poste
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas ajouter un poste
+        """
+        self._test_grp_finance()
+        self._test_acces_ko(self.url)
+
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction ne peut pas ajouter un poste
         """
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur ne peut pas ajouter un poste
         """
@@ -132,28 +139,35 @@ class PosteDeleteTest(RhTest):
         self._test_drh2()
         self._test_acces_ok(self.url)
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
-        Un membre de l'ACCIOR  ne peut pas supprimer un poste
+        Un membre de l'ACCIOR ne peut pas supprimer un poste
         """
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
+        """
+        Un membre de l'ABF ne peut pas supprimer un poste
+        """
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def test_grp_finance(self):
         """
-        Un membre de l'ABF  ne peut pas supprimer un poste
+        Un membre de Finance ne peut pas supprimer un poste
         """
-        self._test_grp_abf(self)
+        self._test_grp_finance()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction  ne peut pas supprimer un poste
         """
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur  ne peut pas supprimer un poste
         """
@@ -220,28 +234,35 @@ class PosteListTest(RhTest):
         self._test_drh2()
         self._test_acces_ok(self.url)
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
         Un membre de l'ACCIOR ne peut pas voir les postes
         """
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas voir les postes
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas voir les postes
+        """
+        self._test_grp_finance()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction  ne peut pas voir les postes
         """
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur ne peut pas voir les postes
         """
index e14d503..c4c2779 100644 (file)
@@ -85,28 +85,35 @@ class RapportContratTest(RhTest):
         contrats = self.client.get(self.url).context['contrats']
         self.assertEqual(len(contrats), 2)
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
         Un membre de l'ACCIOR ne peut pas accéder à ce rapport
         """
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas accéder à ce rapport
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas accéder à ce rapport
+        """
+        self._test_grp_finance()
+        self._test_acces_ko(self.url)
+
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction ne peut pas accéder à ce rapport
         """
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur ne peut pas accéder à ce rapport
         """
@@ -167,30 +174,36 @@ class RapportMasseSalarialeTest(RhTest):
         """
         self._test_drh2()
         self._test_acces_ok(self.url)
-        # todo TEST rapport
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
         Un membre de l'ACCIOR ne peut pas accéder à ce rapport
         """
         self._test_grp_accior()
         self._test_acces_ko(self.url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas accéder à ce rapport
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
+        self._test_acces_ko(self.url)
+
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas accéder à ce rapport
+        """
+        self._test_grp_finance()
         self._test_acces_ko(self.url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction ne peut pas accéder à ce rapport
         """
         self._test_grp_haute_direction()
         self._test_acces_ko(self.url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur ne peut pas accéder à ce rapport
         """
@@ -275,7 +288,7 @@ class RapportOrganigrammeTest(RhTest):
         for url in self.urls:
             self._test_acces_ok(url)
 
-    def _test_grp_accior(self):
+    def test_grp_accior(self):
         """
         Un membre de l'ACCIOR ne peut pas accéder à ce rapport
         """
@@ -283,15 +296,23 @@ class RapportOrganigrammeTest(RhTest):
         for url in self.urls:
             self._test_acces_ko(url)
 
-    def _test_grp_abf(self):
+    def test_grp_abf(self):
         """
         Un membre de l'ABF ne peut pas accéder à ce rapport
         """
-        self._test_grp_abf(self)
+        self._test_grp_abf()
+        for url in self.urls:
+            self._test_acces_ko(url)
+
+    def test_grp_finance(self):
+        """
+        Un membre de Finance ne peut pas accéder à ce rapport
+        """
+        self._test_grp_abf()
         for url in self.urls:
             self._test_acces_ko(url)
 
-    def _test_grp_haute_direction(self):
+    def test_grp_haute_direction(self):
         """
         Un membre de la haute direction ne peut pas accéder à ce rapport
         """
@@ -299,7 +320,7 @@ class RapportOrganigrammeTest(RhTest):
         for url in self.urls:
             self._test_acces_ko(url)
 
-    def _test_grp_service_utilisateurs(self):
+    def test_grp_service_utilisateurs(self):
         """
         Un membre du groupe service utilisateur ne peut pas accéder à ce rapport
         """