1 # -*- encoding: utf-8 -*-
5 #from django.contrib.auth.decorators import user_passes_test
6 #from django.core.exceptions import PermissionDenied
7 #from django.core.urlresolvers import reverse
8 from django
.http
import HttpResponseRedirect
9 from django
.shortcuts
import redirect
10 from permissions
import is_employe
, is_admin
12 #from datamaster_modeles import models as ref
13 from dae
.utils
import get_employe_from_user
14 from rh
import models
as rh
16 # Décorateurs des fonctions dans views (pour tester permissions dans views)
18 def admin_required(fn
):
19 def inner(request
, *args
, **kwargs
):
22 return fn(request
, *args
, **kwargs
)
24 from django
.conf
import settings
25 from django
.contrib
.auth
import REDIRECT_FIELD_NAME
26 from django
.utils
.http
import urlquote
27 login_url
= settings
.LOGIN_URL
28 path
= urlquote(request
.get_full_path())
29 tup
= login_url
, REDIRECT_FIELD_NAME
, path
30 return HttpResponseRedirect('%s?%s=%s' % tup
)
33 def user_is_this_employe(fn
):
35 Décorateur qui vérifie si le user est l'employé demandé.
36 Succes = execution de la vue.
37 Echec = page d'erreur de permission
39 def inner(request
, id, *args
, **kwargs
):
42 employe
= get_employe_from_user(user
)
43 if user
.is_authenticated() and employe
and id==employe
.id:
44 return fn(request
, id, *args
, **kwargs
)
45 # raise PermissionDenied
46 return redirect('550')