rh.decorators au niveau project
authorDavin Baragiotta <davin.baragiotta@auf.org>
Wed, 30 May 2012 21:26:46 +0000 (17:26 -0400)
committerDavin BARAGIOTTA <davin.baragiotta@auf.org>
Wed, 30 May 2012 21:26:46 +0000 (17:26 -0400)
project/decorators.py
project/menu.py
project/rh/admin.py
project/rh/decorators.py [deleted file]
project/rh/views.py

index 41c00dc..74c51f4 100644 (file)
@@ -10,6 +10,8 @@ from django.contrib.auth.decorators import user_passes_test
 from django.core.urlresolvers import reverse
 from django.utils.http import urlquote
 
 from django.core.urlresolvers import reverse
 from django.utils.http import urlquote
 
+from project.groups import grp_drh, grp_drh2
+
 def redirect_interdiction(request, msg=u"Vous n'avez pas accès à cette page"):
     """
     Redirection du la page de login avec un message d'erreur.
 def redirect_interdiction(request, msg=u"Vous n'avez pas accès à cette page"):
     """
     Redirection du la page de login avec un message d'erreur.
@@ -19,5 +21,30 @@ def redirect_interdiction(request, msg=u"Vous n'avez pas accès à cette page"):
     tup = login_url, REDIRECT_FIELD_NAME, path
     messages.add_message(request, messages.ERROR, "Votre compte ne permet pas d'accéder à cette partie de l'application.")
     return HttpResponseRedirect('%s?%s=%s' % tup)
     tup = login_url, REDIRECT_FIELD_NAME, path
     messages.add_message(request, messages.ERROR, "Votre compte ne permet pas d'accéder à cette partie de l'application.")
     return HttpResponseRedirect('%s?%s=%s' % tup)
+    
+def in_drh_or_admin(user):
+    """
+    Teste si un user Django fait parti du groupe DRH, DRH2 ou s'il est admin
+    """
+    groups = user.groups.all()
+    if user.is_superuser or \
+            grp_drh in groups or \
+            grp_drh2 in groups:
+        return True
+    else:
+        return False
+        
+def drh_or_admin_required(fn):
+    """
+    Teste si un user Django fait parti du groupe DRH, DRH2 ou s'il est admin
+    """
+    def inner(request, *args, **kwargs):
+        user = request.user
+        if in_drh_or_admin(user):
+            return fn(request, *args, **kwargs)
 
 
+        msg = u"Votre compte ne permet pas d'accéder à " \
+                u"cette partie de l'application."
+        return redirect_interdiction(request, msg)
 
 
+    return inner
index be01a27..a5b26a9 100644 (file)
@@ -12,7 +12,8 @@ from django.core.urlresolvers import reverse
 from django.utils.translation import ugettext_lazy as _
 
 from admin_tools.menu import items, Menu
 from django.utils.translation import ugettext_lazy as _
 
 from admin_tools.menu import items, Menu
-from project.rh.decorators import in_drh_or_admin
+
+from project.decorators import in_drh_or_admin
 
 class CustomMenu(Menu):
     """
 
 class CustomMenu(Menu):
     """
index e94d91e..de0cb63 100644 (file)
@@ -15,6 +15,7 @@ from auf.django.metadata.admin import \
         AUF_METADATA_READONLY_FIELDS
 import auf.django.references.models as ref
 
         AUF_METADATA_READONLY_FIELDS
 import auf.django.references.models as ref
 
+from project.decorators import in_drh_or_admin
 from project.groups import grp_correspondants_rh
 
 from project.dae.utils import get_employe_from_user
 from project.groups import grp_correspondants_rh
 
 from project.dae.utils import get_employe_from_user
@@ -22,7 +23,6 @@ import project.rh.models as rh
 from project.rh.forms import \
         ContratForm, AyantDroitForm, EmployeAdminForm, AjaxSelect, DossierForm
 from project.rh.change_list import ChangeList
 from project.rh.forms import \
         ContratForm, AyantDroitForm, EmployeAdminForm, AjaxSelect, DossierForm
 from project.rh.change_list import ChangeList
-from project.rh.decorators import in_drh_or_admin
 
 
 class ArchiveMixin(object):
 
 
 class ArchiveMixin(object):
diff --git a/project/rh/decorators.py b/project/rh/decorators.py
deleted file mode 100644 (file)
index 673b1c8..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# -*- encoding: utf-8 -*-
-
-from project.groups import grp_drh, grp_drh2
-from project.decorators import redirect_interdiction
-
-
-def in_drh_or_admin(user):
-    """
-    Teste si un user Django fait parti du groupe DRH, DRH2 ou s'il est admin
-    """
-    groups = user.groups.all()
-    if user.is_superuser or \
-            grp_drh in groups or \
-            grp_drh2 in groups:
-        return True
-    else:
-        return False
-
-
-def drh_or_admin_required(fn):
-    """
-    Teste si un user Django fait parti du groupe DRH, DRH2 ou s'il est admin
-    """
-    def inner(request, *args, **kwargs):
-        user = request.user
-        if in_drh_or_admin(user):
-            return fn(request, *args, **kwargs)
-
-        msg = u"Votre compte ne permet pas d'accéder à " \
-                u"cette partie de l'application."
-        return redirect_interdiction(request, msg)
-
-    return inner
index dc7ee21..7871960 100644 (file)
@@ -21,11 +21,12 @@ from auf.django.references import models as ref
 
 from project.lib import get_employe_from_user
 from project.decorators import redirect_interdiction
 
 from project.lib import get_employe_from_user
 from project.decorators import redirect_interdiction
+from project.decorators import drh_or_admin_required
 
 from project.rh import models as rh
 from project.rh import graph as rh_graph
 from project.rh.change_list import RechercheTemporelle
 
 from project.rh import models as rh
 from project.rh import graph as rh_graph
 from project.rh.change_list import RechercheTemporelle
-from project.rh.decorators import drh_or_admin_required
+
 from project.rh.lib import calc_remun
 from project.rh.masse_salariale import MasseSalariale
 from project.rh.templatetags.rapports import SortHeaders
 from project.rh.lib import calc_remun
 from project.rh.masse_salariale import MasseSalariale
 from project.rh.templatetags.rapports import SortHeaders