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/login_resource.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'service/pixelated/resources/login_resource.py') 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