fix proxy candidat 403
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 12 Apr 2012 16:21:00 +0000 (12:21 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 12 Apr 2012 16:21:00 +0000 (12:21 -0400)
project/recrutement/admin.py

index f1a368a..8825921 100644 (file)
@@ -454,7 +454,21 @@ class ProxyCandidatAdmin(CandidatAdmin):
         return False
 
     def has_change_permission(self, request, obj=None):
-        return True
+        user_groupes = request.user.groups.all()
+        if request.user.is_superuser is True or \
+            grp_correspondants_rh_recrutement in user_groupes or \
+            grp_drh_recrutement in user_groupes or \
+            grp_directeurs_bureau_recrutement in user_groupes or \
+            grp_administrateurs_recrutement in user_groupes:
+            return True
+
+        if obj is not None:
+            evaluateur = Evaluateur.objects.get(user=request.user)
+            for e in obj.evaluations.all():
+                if e.evaluateur == evaluateur:
+                    return True
+
+        return False
 
     def get_actions(self, request):
         return None