b872e151d5fb548cde4c5eac737dd012c44873fb
[auf_rh_dae.git] / project / rh / decorators.py
1 # -*- encoding: utf-8 -*-
2
3 from rh.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 def drh_or_admin_required(fn):
20 """
21 Teste si un user Django fait parti du groupe DRH, DRH2 ou s'il est admin
22 """
23 def inner(request, *args, **kwargs):
24 user = request.user
25 if in_drh_or_admin(user):
26 return fn(request, *args, **kwargs)
27
28 msg = u"Votre compte ne permet pas d'accéder à cette partie de l'application."
29 return redirect_interdiction(request, msg)
30
31 return inner