page perso : permission
[auf_rh_dae.git] / project / decorators.py
index 03430bf..2c543c8 100644 (file)
@@ -2,11 +2,17 @@
 """
 Décorateurs AUF
 """
 """
 Décorateurs AUF
 """
-from django.contrib.auth.decorators import user_passes_test
-from django.core.urlresolvers import reverse
+#from django.contrib.auth.decorators import user_passes_test
+#from django.core.exceptions import PermissionDenied
+#from django.core.urlresolvers import reverse
 from django.http import HttpResponseRedirect
 from django.http import HttpResponseRedirect
+from django.shortcuts import redirect
 from permissions import is_employe, is_admin
 
 from permissions import is_employe, is_admin
 
+#from datamaster_modeles import models as ref
+from dae.utils import get_employe_from_user
+from rh import models as rh
+
 # Décorateurs des fonctions dans views (pour tester permissions dans views)
     
 def admin_required(fn):
 # Décorateurs des fonctions dans views (pour tester permissions dans views)
     
 def admin_required(fn):
@@ -23,3 +29,19 @@ def admin_required(fn):
             tup = login_url, REDIRECT_FIELD_NAME, path
             return HttpResponseRedirect('%s?%s=%s' % tup)
     return inner
             tup = login_url, REDIRECT_FIELD_NAME, path
             return HttpResponseRedirect('%s?%s=%s' % tup)
     return inner
+    
+def user_is_this_employe(fn):
+    """
+    Décorateur qui vérifie si le user est l'employé demandé.
+    Succes = execution de la vue.
+    Echec = page d'erreur de permission
+    """
+    def inner(request, id, *args, **kwargs):
+        id = int(id)
+        user = request.user
+        employe = get_employe_from_user(user)
+        if user.is_authenticated() and employe and id==employe.id:
+            return fn(request, id, *args, **kwargs)
+#        raise PermissionDenied
+        return redirect('550')
+    return inner