Statistics
| Branch: | Tag: | Revision:

root / api / middleware.py @ 89f86fd3

History | View | Annotate | Download (769 Bytes)

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