sécurité a priori : dae, recrutement (context_processor)
authordavin baragiotta <davin.baragiotta@u-db.(none)>
Fri, 29 Jul 2011 21:48:48 +0000 (17:48 -0400)
committerDavin BARAGIOTTA <davin.baragiotta@auf.org>
Fri, 29 Jul 2011 21:48:48 +0000 (17:48 -0400)
project/dae/context_processors.py [new file with mode: 0644]
project/recrutement/context_processors.py [new file with mode: 0644]
project/recrutement/permissions.py [new file with mode: 0644]
project/settings.py
project/templates/index.html
project/templates/menu.html

diff --git a/project/dae/context_processors.py b/project/dae/context_processors.py
new file mode 100644 (file)
index 0000000..40dce68
--- /dev/null
@@ -0,0 +1,8 @@
+# -*- encoding: utf-8 -*-
+from dae.decorators import user_in_dae_groupes as in_dae_groupes
+
+# Ajout de variables accessibles dans les templates (pour tester permissions dans templates)
+   
+def user_in_dae_groupes(request):
+    return {'user_in_dae_groupes': in_dae_groupes(request.user)}
+
diff --git a/project/recrutement/context_processors.py b/project/recrutement/context_processors.py
new file mode 100644 (file)
index 0000000..69b8c6e
--- /dev/null
@@ -0,0 +1,8 @@
+# -*- encoding: utf-8 -*-
+from recrutement.permissions import user_in_recrutement_groupes as in_recrutement_groupes
+
+# Ajout de variables accessibles dans les templates (pour tester permissions dans templates)
+   
+def user_in_recrutement_groupes(request):
+    return {'user_in_recrutement_groupes': in_recrutement_groupes(request.user)}
+
diff --git a/project/recrutement/permissions.py b/project/recrutement/permissions.py
new file mode 100644 (file)
index 0000000..dc7b9c1
--- /dev/null
@@ -0,0 +1,15 @@
+# -*- encoding: utf-8 -*-
+from django.contrib.auth.models import Group
+
+# Logique AUF des permissions
+
+recrutement_groupes = Group.objects.none()
+
+def user_in_recrutement_groupes(user):
+    """
+    Teste si un user Django fait parti des groupes prédéfinis de DAE.
+    """
+    for g in user.groups.all():
+        if g in recrutement_groupes:
+            return True
+    return False
index 0384e47..e15cd1c 100644 (file)
@@ -88,6 +88,8 @@ TEMPLATE_CONTEXT_PROCESSORS = (
     'auf.django.skin.context_processors.auf',
     'project.context_processors.utilisateur',
     'project.context_processors.user_is_admin',
+    'dae.context_processors.user_in_dae_groupes',
+    'recrutement.context_processors.user_in_recrutement_groupes',
 )
 
 AUTHENTICATION_BACKENDS = (
index 2edc41d..e2fa48d 100644 (file)
@@ -4,7 +4,6 @@
 {% block sous_titre %}Accueil{% endblock %}
 
 {% block main %}
-
 <h1>Ressources humaines</h1>
 
 <p>
@@ -15,8 +14,20 @@ Voici les applications actuellement disponibles :
 </p>
 <ul>
     <li><a href="{% url rh_employes %}">Employés</a></li>
-    <li><a href="{% url dae_index %}">Demande d'autorisation d'engagement (DAE)</a></li>
-    <li><a href="{% url index %}">Recrutement</a></li>
+    <li>
+    {% if user_in_dae_groupes %}
+        <a href="{% url dae_index %}">Demande d'autorisation d'engagement (DAE)</a>
+    {% else %}
+        Demande d'autorisation d'engagement (DAE)
+    {% endif %}
+    </li>
+    <li>
+    {% if user_in_recrutement_groupes %}
+        <a href="{% url index %}">Recrutement</a>
+    {% else %}
+        Recrutement
+    {% endif %}
+    </li>
 </ul>
 <p>
 L'accès aux applications est géré par des permissions d'accès.
@@ -24,7 +35,7 @@ L'accès aux applications est géré par des permissions d'accès.
 
 <h1>Vos permissions d'accès</h1>
 
-{% if request.user.groups.all %}
+{% if user.groups.all %}
 <p>Vous faites partie des groupes suivants : </p>
 <ul>
     {% for g in request.user.groups.all %}
@@ -34,5 +45,4 @@ L'accès aux applications est géré par des permissions d'accès.
 {% else %}
     Vous n'avez aucune permission d'accès particulière.
 {% endif %}
-
 {% endblock %}
index 22009e7..0dd8848 100644 (file)
@@ -8,6 +8,7 @@
     <li class="{% menu_actif request '^employes$' %}">
         <a href="{% url rh_employes %}">Employés</a>
     </li>
+    {% if user_in_dae_groupes %}
     <li class="{% menu_actif request '^dae$' %}">
         <a href="{% url dae_index %}">DAE</a>
         <ul>
         </li>
         </ul>
     </li>
+    {% endif %}
+    {% if user_in_recrutement_groupes %}
     <li class="{% menu_actif request '^recrutement$' %}">
         <a href="{% url index %}">Recrutement</a>
     </li>
+    {% endif %}
 {% endif %}
 </ul>