1 # -*- encoding: utf-8 -*-
5 from django
.contrib
.auth
.decorators
import user_passes_test
6 from django
.core
.urlresolvers
import reverse
7 from django
.http
import HttpResponseRedirect
8 from django
.conf
import settings
9 from django
.contrib
.auth
import REDIRECT_FIELD_NAME
10 from django
.utils
.http
import urlquote
11 from django
.contrib
import messages
13 from project
.permissions
import is_employe
, is_admin
15 # Décorateurs des fonctions dans views (pour tester permissions dans views)
17 def admin_required(fn
):
18 def inner(request
, *args
, **kwargs
):
21 return fn(request
, *args
, **kwargs
)
23 return redirect_interdiction(request
)
26 def redirect_interdiction(request
, msg
=u
"Vous n'avez pas accès à cette page"):
28 Redirection du la page de login avec un message d'erreur.
30 login_url
= settings
.LOGIN_URL
31 path
= urlquote(request
.get_full_path())
32 tup
= login_url
, REDIRECT_FIELD_NAME
, path
33 messages
.add_message(request
, messages
.ERROR
, "Votre compte ne permet pas d'accéder à cette partie de l'application.")
34 return HttpResponseRedirect('%s?%s=%s' % tup
)