Revision 5415afea

b/pithos/im/fixtures/auth_test_data.json
20 20
            "uniq": "verigak",
21 21
            "level": 1,
22 22
            "invitations": 3,
23
            "is_admin": 1,
23 24
            "auth_token": "0001",
24 25
            "auth_token_created": "2011-04-07 09:17:14",
25 26
            "auth_token_expires": "2015-04-07 09:17:14",
b/pithos/middleware/auth.py
38 38
from pithos.im.models import User
39 39

  
40 40

  
41
def get_user_from_token(token):
42
    try:
43
        return User.objects.get(auth_token=token)
44
    except User.DoesNotExist:
45
        return None
46

  
47

  
41 48
class AuthMiddleware(object):
42 49
    def process_request(self, request):
43 50
        request.user = None
44 51
        request.user_uniq = None
45 52
        
46
        # Try to find token in a parameter, in a request header, or in a cookie.
47
        token = request.GET.get('X-Auth-Token', None)
48
        if not token:
49
            token = request.META.get('HTTP_X_AUTH_TOKEN', None)
50
        if not token:
51
            token = request.COOKIES.get('X-Auth-Token', None)
52
        if not token: # Back from an im login target.
53
        # Try to find token in a parameter, in a request header,
54
        # or in a cookie.
55
        user = get_user_from_token(request.GET.get('X-Auth-Token'))
56
        if not user:
57
            user = get_user_from_token(request.META.get('HTTP_X_AUTH_TOKEN'))
58
        if not user:
59
            user = get_user_from_token(request.COOKIES.get('X-Auth-Token'))
60
        if not user:
61
            # Back from an im login target.
53 62
            if request.GET.get('user', None):
54 63
                token = request.GET.get('token', None)
55 64
                if token:
56 65
                    request.set_auth_cookie = True
57
        if not token:
58
            return
66
                user = get_user_from_token(token)
59 67
        
60
        # Token was found, retrieve user from backing store.
61
        try:
62
            user = User.objects.get(auth_token=token)
63
        except:
68
        if not user:
64 69
            return
65 70
        
66 71
        # Check if the is active.

Also available in: Unified diff