Revision 89f86fd3

b/api/middleware.py
1
from synnefo.api.errors import Unauthorized
2
from synnefo.db.models import SynnefoUser
3

  
4
class SynnefoAuthMiddleware(object):
5

  
6
    auth_token = "X-Auth-Token"
7
    auth_user  = "X-Auth-User"
8
    auth_key   = "X-Auth-Key"
9

  
10
    def process_request(self, request):
11
        if self.auth_token in request.META:
12
            #Retrieve user from DB
13
            user = SynnefoUser.objects.get(request.META.get(self.auth_token))
14
            if user is None :
15
                return
16
            request.user = user
17

  
18
        #An authentication request
19
        if self.auth_user in request.META and 'X-Auth-Key' in request.META \
20
           and '/v1.0' == request.path and 'GET' == request.method:
21
            #Do authenticate or redirect
22
            return
23

  
24
        raise Unauthorized

Also available in: Unified diff