#4017
[auf_rh_dae.git] / project / groups.py
index 1925362..815ff8c 100644 (file)
@@ -1,36 +1,38 @@
 # -*- encoding: utf-8 -*-
 
-from django.contrib.auth.models import Group
-
-def safe_create_groupe(name):
-    """
-    Création d'un groupe prédéfini. Retourne None, quand la création
-    ne peut se faire. (C'est le cas au syncdb, quand la table de groupe
-    n'a pas été crée encore).
-    """
-    try:
-        grp, created = Group.objects.get_or_create(name=name)
-    except Exception, e:
-        return None
-    return grp
+from django.core.exceptions import ObjectDoesNotExist
 
 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.
+    """
+    import auf.django.references.models as ref
+    try:
+        employe = ref.Employe.objects.get(courriel=user.email)
+    except ObjectDoesNotExist:
+        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)
+    if employe.id == 2190:  # rola saade gère les DAE des Amériques
+        return False
+    return employe.implantation_id in (15, 19)
+
+
+def is_user_dans_region(user):
+    return not is_user_dans_services_centraux(user)