summaryrefslogtreecommitdiff
path: root/service/pixelated/application.py
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2016-01-27 13:56:41 +0100
committerFolker Bernitt <fbernitt@thoughtworks.com>2016-01-27 13:57:26 +0100
commite66b356f900bc9899a5506378163ffaadd4a32b5 (patch)
tree1f7d06ac3c23a274f91c6e706afcc1615ded2397 /service/pixelated/application.py
parent32dce59ce1aa32846948148fafaffb190206477e (diff)
Add a login multi user functional test
- Issue #576 - Extended AppTestClient with multi user support
Diffstat (limited to 'service/pixelated/application.py')
-rw-r--r--service/pixelated/application.py21
1 files changed, 15 insertions, 6 deletions
diff --git a/service/pixelated/application.py b/service/pixelated/application.py
index e273612d..c7833367 100644
--- a/service/pixelated/application.py
+++ b/service/pixelated/application.py
@@ -30,7 +30,7 @@ from pixelated.adapter.welcome_mail import add_welcome_mail
from pixelated.config import arguments
from pixelated.config import logger
from pixelated.config.leap import initialize_leap_single_user, init_monkeypatches, initialize_leap_provider
-from pixelated.config.services import Services
+from pixelated.config import services
from pixelated.config.site import PixelatedSite
from pixelated.resources.auth import LeapPasswordChecker, PixelatedRealm, PixelatedAuthSessionWrapper, SessionChecker
from pixelated.resources.login_resource import LoginResource
@@ -49,6 +49,7 @@ class ServicesFactory(object):
return user_id in self._services_by_user
def services(self, user_id):
+ print self._services_by_user.keys()
return self._services_by_user[user_id]
def log_out_user(self, user_id):
@@ -60,6 +61,13 @@ class ServicesFactory(object):
def add_session(self, user_id, services):
self._services_by_user[user_id] = services
+ @defer.inlineCallbacks
+ def create_services_from(self, leap_session):
+ _services = services.Services(leap_session)
+ yield _services.setup()
+
+ self._services_by_user[leap_session.user_auth.uuid] = _services
+
class SingleUserServicesFactory(object):
def __init__(self, mode):
@@ -82,13 +90,13 @@ class UserAgentMode(object):
def start_user_agent_in_single_user_mode(root_resource, services_factory, leap_home, leap_session):
log.info('Bootstrap done, loading services for user %s' % leap_session.user_auth.username)
- services = Services(leap_session)
- yield services.setup()
+ _services = services.Services(leap_session)
+ yield _services.setup()
if leap_session.fresh_account:
yield add_welcome_mail(leap_session.mail_store)
- services_factory.add_session(leap_session.user_auth.uuid, services)
+ services_factory.add_session(leap_session.user_auth.uuid, _services)
root_resource.initialize()
@@ -166,8 +174,9 @@ def _start_in_multi_user_mode(args, root_resource, services_factory):
return defer.succeed(None)
-def set_up_protected_resources(root_resource, provider, services_factory):
- checker = LeapPasswordChecker(provider)
+def set_up_protected_resources(root_resource, provider, services_factory, checker=None):
+ if not checker:
+ checker = LeapPasswordChecker(provider)
session_checker = SessionChecker()
anonymous_resource = LoginResource(services_factory)