From a542199a90aefdcee010db02134c40a1aaf6e919 Mon Sep 17 00:00:00 2001 From: NavaL Date: Sun, 24 Jan 2016 23:10:07 +0100 Subject: multi user unit test Issue #576 --- service/pixelated/resources/__init__.py | 2 +- service/pixelated/resources/login_resource.py | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) (limited to 'service/pixelated/resources') 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') -- cgit v1.2.3