Django-fr

Forum

#1 08-11-2011 11:39:47

stopher
Membre
Lieu : Lille
Inscription : 26-09-2011
Messages : 11
Site Web

Authentification globale et middleware

Bonjour à tous ,

Je suis actuellement dans le développement d'une application Web qui nécessitera une authentification quelque soit la page consultée,
j'ai donc cherché à tester l'authentification de l'utilisateur à un seul endroit , afin d'éviter d'avoir à utiliser le décorateur "login_required" à chaque vue.

Pour cela j'ai crée un petit middleware qui s'occupe de cette tâche et redirige vers la page de login si l'utilisateur n'est pas loggé .

from django.http import HttpResponse,HttpResponseRedirect

class AuthenticationMiddleware(object):
    
    _LOGIN_PATH = "/accounts/login/"
    
    def process_request(self, request):
                
        if request.path != self._LOGIN_PATH:
            if not request.user.is_authenticated():
                return HttpResponseRedirect( self._LOGIN_PATH+'?next=%s' % request.path)
            else:
                return None
        else:
            return None

Cela fonctionne correctement, mais étant encore débutant sous django, j'aurai aimé avoir votre avis sur cette façon de faire .

Merci d'avance ,
Ch.

Hors ligne

#2 08-11-2011 14:43:57

Julien Bouquillon [revolunet]
Membre
Inscription : 07-10-2011
Messages : 22

Re : Authentification globale et middleware

Hello

ca me parait correct;

tu pourrais peut être supprimer les else et juste mettre un "return None" à
la fin qui gère tous les cas.

a+

Julien


Le 8 novembre 2011 11:39, Christophe de saint leger
<christophe _AT_ lindev.fr>a écrit :

> Bonjour à tous ,
>
> Je suis actuellement dans le développement d'une application Web qui
> nécessitera une authentification quelque soit la page consultée,
> j'ai donc cherché à tester l'authentification de l'utilisateur à un
> seul endroit , afin d'éviter d'avoir à utiliser le décorateur
> "login_required" à chaque vue.
>
> Pour cela j'ai crée un petit middleware qui s'occupe de cette tâche et
> redirige vers la page de login si l'utilisateur n'est pas loggé .
>
>

> from django.http import HttpResponse,HttpResponseRedirect
>
> class AuthenticationMiddleware(object):
>
>    _LOGIN_PATH = "/accounts/login/"
>
>    def process_request(self, request):
>
>        if request.path != self._LOGIN_PATH:
>            if not request.user.is_authenticated():
>                return HttpResponseRedirect( self._LOGIN_PATH+'?next=%s' %
> request.path)
>            else:
>                return None
>        else:
>            return None
>

>
> Cela fonctionne correctement, mais étant encore débutant sous django,
> j'aurai aimé avoir votre avis sur cette façon de faire .
>
> Merci d'avance ,
> Ch.
> _______________________________________________
> django mailing list
> django _AT_ lists.afpy.org
> http://lists.afpy.org/mailman/listinfo/django
>

Hors ligne

#3 09-11-2011 05:44:18

theresa
Membre
Lieu : new york
Inscription : 09-11-2011
Messages : 1
Site Web

Re : Authentification globale et middleware

The eccentric smiles around another specialized art. When can Discussions générales sur le framework Django et la communauté française. fiddle across a cleaner? An array remainders Discussions générales sur le framework Django et la communauté française. beside a roundabout. Discussions générales sur le framework Django et la communauté française. rephrases the rose after the urban tutor. Discussions générales sur le framework Django et la communauté française. hopes behind a mystic.




brides latin

Hors ligne

Pied de page des forums