summaryrefslogtreecommitdiff
path: root/service/pixelated
diff options
context:
space:
mode:
authorNavaL <mnandri@thoughtworks.com>2016-01-24 23:10:07 +0100
committerNavaL <mnandri@thoughtworks.com>2016-01-25 20:47:52 +0100
commita542199a90aefdcee010db02134c40a1aaf6e919 (patch)
tree869832bdcaeb1b364f2cac5866d1eda023e7e7ed /service/pixelated
parent74ab33d3b59ca42f760d86e5486f82302041c998 (diff)
multi user unit test
Issue #576
Diffstat (limited to 'service/pixelated')
-rw-r--r--service/pixelated/resources/__init__.py2
-rw-r--r--service/pixelated/resources/login_resource.py21
2 files changed, 13 insertions, 10 deletions
diff --git a/service/pixelated/resources/__init__.py b/service/pixelated/resources/__init__.py
index 9cde015f..06fcbe54 100644
--- a/service/pixelated/resources/__init__.py
+++ b/service/pixelated/resources/__init__.py
@@ -16,7 +16,7 @@
import json
-from twisted.web._responses import UNAUTHORIZED
+from twisted.web.http import UNAUTHORIZED
from twisted.web.resource import Resource
# from pixelated.resources.login_resource import LoginResource
diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py
index e7586bf6..8a18046c 100644
--- a/service/pixelated/resources/login_resource.py
+++ b/service/pixelated/resources/login_resource.py
@@ -19,7 +19,9 @@ import os
from twisted.cred import credentials
from twisted.internet import defer
-from twisted.web.resource import IResource
+from twisted.web import util
+from twisted.web.http import UNAUTHORIZED, OK
+from twisted.web.resource import IResource, NoResource
from twisted.web.server import NOT_DONE_YET
from twisted.web.static import File
from twisted.web.template import Element, XMLFile, renderElement, renderer, tags
@@ -80,9 +82,12 @@ class LoginResource(BaseResource):
return self
if path == 'login':
return self
- return UnAuthorizedResource()
+ if not self.is_logged_in(request):
+ return UnAuthorizedResource()
+ return NoResource()
def render_GET(self, request):
+ request.setResponseCode(OK)
return self._render_template(request)
def _render_template(self, request, error_msg=None):
@@ -92,11 +97,13 @@ class LoginResource(BaseResource):
def render_POST(self, request):
def render_response(response):
- request.redirect("/")
+ util.redirectTo("/", request)
request.finish()
def render_error(error):
- request.status = 500
+ log.info('Login Error for %s' % request.args['username'][0])
+ log.info('%s' % error)
+ request.setResponseCode(UNAUTHORIZED)
return self._render_template(request, 'Invalid credentials')
d = self._handle_login(request)
@@ -107,17 +114,13 @@ class LoginResource(BaseResource):
@defer.inlineCallbacks
def _handle_login(self, request):
if self.is_logged_in(request):
+ request.setResponseCode(OK)
defer.succeed(None)
return
username = request.args['username'][0]
password = request.args['password'][0]
creds = credentials.UsernamePassword(username, password)
-
iface, leap_user, logout = yield self._portal.login(creds, None, IResource)
- # we should really check whether the response is anonymous
-
yield leap_user.start_services(self._services_factory)
leap_user.init_http_session(request)
-
- log.info('about to redirect to home page')