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