Fix dummy login target.
authorAntony Chazapis <chazapis@gmail.com>
Mon, 7 Nov 2011 16:49:25 +0000 (18:49 +0200)
committerroot <root@pithos.dev.grnet.gr>
Mon, 7 Nov 2011 16:49:25 +0000 (18:49 +0200)
pithos/im/target/dummy.py
pithos/middleware/auth.py

index 3aa40c7..f6cbba4 100644 (file)
@@ -31,7 +31,7 @@
 # interpreted as representing official policies, either expressed
 # or implied, of GRNET S.A.
 
-from django.http import HttpResponse, HttpResponseRedirect
+from django.http import HttpResponseBadRequest
 
 from pithos.im.target.util import prepare_response
 
@@ -39,8 +39,8 @@ from pithos.im.target.util import prepare_response
 def login(request):
     next = request.GET.get('next')
     if not next:
-        return HttpResponse('')
+        return HttpResponseBadRequest('No next step provided')
     if not request.user:
-        return HttpResponseRedirect(next)
+        return HttpResponseBadRequest('User not found')
     
     return prepare_response(request.user, next)
index 75ea506..16afee7 100644 (file)
@@ -32,6 +32,7 @@
 # or implied, of GRNET S.A.
 
 from time import time, mktime
+from urllib import quote, unquote
 
 from pithos.im.models import User
 
@@ -60,7 +61,7 @@ class AuthMiddleware(object):
                     request.set_auth_cookie = True
                 user = get_user_from_token(token)
             if not user:
-                cookie_value = request.COOKIES.get('_pithos2_a')
+                cookie_value = unquote(request.COOKIES.get('_pithos2_a', ''))
                 if cookie_value and '|' in cookie_value:
                     token = cookie_value.split('|', 1)[1]
                     user = get_user_from_token(token)
@@ -81,6 +82,6 @@ class AuthMiddleware(object):
     def process_response(self, request, response):
         if getattr(request, 'user', None) and getattr(request, 'set_auth_cookie', False):
             expire_fmt = request.user.auth_token_expires.strftime('%a, %d-%b-%Y %H:%M:%S %Z')
-            cookie_value = request.user.uniq + '|' + request.user.auth_token
+            cookie_value = quote(request.user.uniq + '|' + request.user.auth_token)
             response.set_cookie('_pithos2_a', value=cookie_value, expires=expire_fmt, path='/')
         return response