Commit | Line | Data |
---|---|---|
551ef095 | 1 | from django.core.exceptions import MultipleObjectsReturned |
518d0b44 EMS |
2 | from chercheurs.models import Personne, Chercheur |
3 | ||
4 | class LazyChercheur(object): | |
5 | ||
6 | def __get__(self, request, obj_type=None): | |
7 | if not hasattr(request, '_cached_chercheur'): | |
8 | request._cached_chercheur = None | |
9 | if request.user.is_authenticated(): | |
10 | try: | |
695930dd | 11 | request._cached_chercheur = Chercheur.objects.get(actif=True, courriel=request.user.email) |
551ef095 | 12 | except (Personne.DoesNotExist, Chercheur.DoesNotExist, MultipleObjectsReturned): |
518d0b44 EMS |
13 | pass |
14 | return request._cached_chercheur | |
15 | ||
16 | class ChercheurMiddleware(object): | |
17 | ||
18 | def process_request(self, request): | |
19 | request.__class__.chercheur = LazyChercheur() |