From 647dc21a664ff97753fb19f68705bc58da15e25f Mon Sep 17 00:00:00 2001 From: davin baragiotta Date: Tue, 2 Aug 2011 15:25:26 -0400 Subject: [PATCH] =?utf8?q?permissions=20pour=20recrutement=20impl=C3=A9ment=C3?= =?utf8?q?=A9=20sur=20vrais=20groupes?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- project/dae/utils.py | 2 +- project/dae/workflow.py | 1 + project/lib.py | 12 ++++++++++++ project/recrutement/permissions.py | 12 +++++++++++- 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/project/dae/utils.py b/project/dae/utils.py index f57f4e8..c0f2c05 100644 --- a/project/dae/utils.py +++ b/project/dae/utils.py @@ -6,7 +6,7 @@ def get_employe_from_user(user): """ Retourne un employé AUF à partir de son user Django. """ - # Refactoring : utiliser project.lib.get_employe_from_user + # TODO : Refactoring : utiliser project.lib.get_employe_from_user try: employe = ref.Authentification.objects.get(courriel=user.email).id except: diff --git a/project/dae/workflow.py b/project/dae/workflow.py index bb1c55f..fc2b5f4 100644 --- a/project/dae/workflow.py +++ b/project/dae/workflow.py @@ -10,6 +10,7 @@ def safe_create_groupe(name): ne peut se faire. (C'est le cas au syncdb, quand la table de groupe n'a pas été crée encore). """ + # TODO : Refactoring : utiliser project.lib.safe_create_groupe try: grp, created = Group.objects.get_or_create(name=name) except: diff --git a/project/lib.py b/project/lib.py index 3670aca..2c90073 100644 --- a/project/lib.py +++ b/project/lib.py @@ -14,3 +14,15 @@ def get_employe_from_user(user): #raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email) employe = rh.Employe.objects.none() return employe + +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: + return None + return grp diff --git a/project/recrutement/permissions.py b/project/recrutement/permissions.py index dc7b9c1..c8d12fd 100644 --- a/project/recrutement/permissions.py +++ b/project/recrutement/permissions.py @@ -1,14 +1,24 @@ # -*- encoding: utf-8 -*- from django.contrib.auth.models import Group +from project.lib import safe_create_groupe + # Logique AUF des permissions -recrutement_groupes = Group.objects.none() +grp_drh = safe_create_groupe(name='DRH') +grp_evaluateurs = safe_create_groupe(name='Évaluateurs') + +recrutement_groupes = ( + grp_drh, + grp_evaluateurs, +) def user_in_recrutement_groupes(user): """ Teste si un user Django fait parti des groupes prédéfinis de DAE. """ + if user.is_superuser: + return True for g in user.groups.all(): if g in recrutement_groupes: return True -- 1.7.10.4