Commit | Line | Data |
---|---|---|
3f5cbabe OL |
1 | # -*- encoding: utf-8 -*- |
2 | ||
3 | from django.contrib.auth.models import Group | |
afd3be54 | 4 | import auf.django.references.models as ref |
3f5cbabe OL |
5 | |
6 | def safe_create_groupe(name): | |
7 | """ | |
8 | Création d'un groupe prédéfini. Retourne None, quand la création | |
9 | ne peut se faire. (C'est le cas au syncdb, quand la table de groupe | |
10 | n'a pas été crée encore). | |
11 | """ | |
12 | try: | |
13 | grp, created = Group.objects.get_or_create(name=name) | |
14 | except Exception, e: | |
3f5cbabe OL |
15 | return None |
16 | return grp | |
17 | ||
940c9dd8 OL |
18 | CORRESPONDANT_RH = 'Correspondants RH' |
19 | ADMINISTRATEURS ='Administrateurs' | |
20 | DIRECTEUR_DE_BUREAU = 'Directeurs de bureau' | |
21 | DRH_NIVEAU_1 = 'DRH' | |
22 | DRH_NIVEAU_2 = 'DRH-2' | |
23 | ACCIOR = 'ACCIOR' | |
24 | ABF = 'ABF' | |
25 | HAUTE_DIRECTION = 'Haute direction' | |
26 | SERVICE_UTILISATEURS = 'Service utilisateurs' | |
27 | ||
3f5cbabe | 28 | # Groupes impliqués dans le Worflow |
940c9dd8 OL |
29 | grp_correspondants_rh = safe_create_groupe(name=CORRESPONDANT_RH) |
30 | grp_administrateurs = safe_create_groupe(name=ADMINISTRATEURS) | |
31 | grp_directeurs_bureau = safe_create_groupe(name=DIRECTEUR_DE_BUREAU) | |
32 | grp_drh = safe_create_groupe(name=DRH_NIVEAU_1) | |
33 | grp_drh2 = safe_create_groupe(name=DRH_NIVEAU_2) | |
34 | grp_accior = safe_create_groupe(name=ACCIOR) | |
35 | grp_abf = safe_create_groupe(name=ABF) | |
36 | grp_haute_direction = safe_create_groupe(name=HAUTE_DIRECTION) | |
37 | grp_service_utilisateurs = safe_create_groupe(name=SERVICE_UTILISATEURS) | |
afd3be54 DB |
38 | |
39 | def get_employe_from_user(user): | |
40 | """ | |
41 | Retourne un employé AUF à partir de son user Django. | |
42 | """ | |
43 | try: | |
44 | employe = ref.Authentification.objects.get(courriel=user.email).id | |
45 | # ajouter coordonnées via ref.Employe? (courriel, tel, etc.) | |
46 | except: | |
47 | raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email) | |
48 | return employe | |
49 | ||
50 | def is_user_dans_services_centraux(user): | |
51 | employe = get_employe_from_user(user) | |
7f013ea1 | 52 | if employe.id == 2190: # rola saade gère les DAE des Amériques |
afd3be54 DB |
53 | return False |
54 | return employe.implantation_id in (15, 19) | |
55 | ||
56 | def is_user_dans_region(user): | |
57 | employe = get_employe_from_user(user) | |
58 | return not is_user_dans_services_centraux(user) |