Revision 4b3b8688 snf-cyclades-app/synnefo/plankton/util.py
b/snf-cyclades-app/synnefo/plankton/util.py | ||
---|---|---|
41 | 41 |
from django.http import (HttpResponse, HttpResponseBadRequest, |
42 | 42 |
HttpResponseServerError) |
43 | 43 |
|
44 |
from synnefo.lib.astakos import get_user |
|
44 | 45 |
from synnefo.plankton.backend import ImageBackend, BackendException |
45 | 46 |
|
46 | 47 |
|
47 | 48 |
log = getLogger('synnefo.plankton') |
48 | 49 |
|
49 | 50 |
|
50 |
def get_user_from_token(token): |
|
51 |
return None |
|
52 |
|
|
53 |
|
|
54 |
def get_request_user(request): |
|
55 |
user = get_user_from_token(request.META.get('HTTP_X_AUTH_TOKEN')) |
|
56 |
if not user: |
|
57 |
user = get_user_from_token(request.COOKIES.get('X-Auth-Token')) |
|
58 |
return user |
|
59 |
|
|
60 |
|
|
61 | 51 |
def plankton_method(method): |
62 | 52 |
def decorator(func): |
63 | 53 |
@wraps(func) |
64 | 54 |
def wrapper(request, *args, **kwargs): |
65 | 55 |
try: |
56 |
get_user(request, settings.ASTAKOS_URL) |
|
57 |
if not request.user_uniq: |
|
58 |
raise Unauthorized('No user found.') |
|
66 | 59 |
if request.method != method: |
67 | 60 |
return HttpResponse(status=405) |
68 |
if not request.user: |
|
61 |
if not request.user_uniq:
|
|
69 | 62 |
return HttpResponse(status=401) |
70 |
request.backend = ImageBackend(request.user) |
|
63 |
request.backend = ImageBackend(request.user_uniq)
|
|
71 | 64 |
return func(request, *args, **kwargs) |
72 | 65 |
except (AssertionError, BackendException) as e: |
73 | 66 |
message = e.args[0] if e.args else '' |
Also available in: Unified diff