redirect_interdiction niveau project
[auf_rh_dae.git] / project / rh / decorators.py
1 # -*- encoding: utf-8 -*-
2
3 from project.groups import grp_drh, grp_drh2
4 from project.decorators import redirect_interdiction
5
6
7 def in_drh_or_admin(user):
8 """
9 Teste si un user Django fait parti du groupe DRH, DRH2 ou s'il est admin
10 """
11 groups = user.groups.all()
12 if user.is_superuser or \
13 grp_drh in groups or \
14 grp_drh2 in groups:
15 return True
16 else:
17 return False
18
19
20 def drh_or_admin_required(fn):
21 """
22 Teste si un user Django fait parti du groupe DRH, DRH2 ou s'il est admin
23 """
24 def inner(request, *args, **kwargs):
25 user = request.user
26 if in_drh_or_admin(user):
27 return fn(request, *args, **kwargs)
28
29 msg = u"Votre compte ne permet pas d'accéder à " \
30 u"cette partie de l'application."
31 return redirect_interdiction(request, msg)
32
33 return inner