diff options
author | NavaL <mnandri@thoughtworks.com> | 2016-01-24 23:10:07 +0100 |
---|---|---|
committer | NavaL <mnandri@thoughtworks.com> | 2016-01-25 20:47:52 +0100 |
commit | a542199a90aefdcee010db02134c40a1aaf6e919 (patch) | |
tree | 869832bdcaeb1b364f2cac5866d1eda023e7e7ed /service/pixelated | |
parent | 74ab33d3b59ca42f760d86e5486f82302041c998 (diff) |
multi user unit test
Issue #576
Diffstat (limited to 'service/pixelated')
-rw-r--r-- | service/pixelated/resources/__init__.py | 2 | ||||
-rw-r--r-- | service/pixelated/resources/login_resource.py | 21 |
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') |