From e66b356f900bc9899a5506378163ffaadd4a32b5 Mon Sep 17 00:00:00 2001 From: Folker Bernitt Date: Wed, 27 Jan 2016 13:56:41 +0100 Subject: Add a login multi user functional test - Issue #576 - Extended AppTestClient with multi user support --- service/pixelated/resources/auth.py | 16 +--------------- service/pixelated/resources/login_resource.py | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 18 deletions(-) (limited to 'service/pixelated/resources') diff --git a/service/pixelated/resources/auth.py b/service/pixelated/resources/auth.py index 2d31316b..4eb6bd02 100644 --- a/service/pixelated/resources/auth.py +++ b/service/pixelated/resources/auth.py @@ -94,21 +94,7 @@ class SessionChecker(object): class LeapUser(object): def __init__(self, leap_session): - self._leap_session = leap_session - - @defer.inlineCallbacks - def start_services(self, services_factory): - _services = services.Services(self._leap_session) - yield _services.setup() - - if self._leap_session.fresh_account: - yield add_welcome_mail(self._leap_session.mail_store) - - services_factory.add_session(self._leap_session.user_auth.uuid, _services) - - def init_http_session(self, request): - session = IPixelatedSession(request.getSession()) - session.user_uuid = self._leap_session.user_auth.uuid + self.leap_session = leap_session class PixelatedRealm(object): diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py index 8a18046c..065d71e7 100644 --- a/service/pixelated/resources/login_resource.py +++ b/service/pixelated/resources/login_resource.py @@ -27,7 +27,8 @@ from twisted.web.static import File from twisted.web.template import Element, XMLFile, renderElement, renderer, tags from twisted.python.filepath import FilePath -from pixelated.resources import BaseResource, UnAuthorizedResource +from pixelated.adapter.welcome_mail import add_welcome_mail +from pixelated.resources import BaseResource, UnAuthorizedResource, IPixelatedSession log = logging.getLogger(__name__) @@ -122,5 +123,17 @@ class LoginResource(BaseResource): creds = credentials.UsernamePassword(username, password) iface, leap_user, logout = yield self._portal.login(creds, None, IResource) - yield leap_user.start_services(self._services_factory) - leap_user.init_http_session(request) + yield self._initialize_after_login(self._services_factory, leap_user) + self._init_http_session(request, leap_user) + + @defer.inlineCallbacks + def _initialize_after_login(self, services_factory, leap_user): + session = leap_user.leap_session + yield services_factory.create_services_from(session) + + if session.fresh_account: + yield add_welcome_mail(session.mail_store) + + def _init_http_session(self, request, leap_user): + session = IPixelatedSession(request.getSession()) + session.user_uuid = leap_user.leap_session.user_auth.uuid -- cgit v1.2.3