summaryrefslogtreecommitdiff
path: root/service/pixelated/application.py
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2016-01-18 15:39:59 +0100
committerFolker Bernitt <fbernitt@thoughtworks.com>2016-01-18 15:39:59 +0100
commitc5d61bc8001b16e3dcedda9fd1229c27cca4bd3b (patch)
treea36fb87a31b7692d124b959ba32ba49f48a14ed8 /service/pixelated/application.py
parent0b06feff629f91d2fa4e7bdbe3b8e46b412e6158 (diff)
Refactory KeyResource to get services from session
- Issue #576 - Only first step (other services not changed yet) - Faked session access for now
Diffstat (limited to 'service/pixelated/application.py')
-rw-r--r--service/pixelated/application.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/service/pixelated/application.py b/service/pixelated/application.py
index 7c8af78d..17dbacbf 100644
--- a/service/pixelated/application.py
+++ b/service/pixelated/application.py
@@ -41,6 +41,27 @@ import logging
log = logging.getLogger(__name__)
+class ServicesFactory(object):
+
+ def __init__(self):
+ self._services_by_user = {}
+
+ def is_logged_in(self, user_id):
+ return user_id in self._services_by_user
+
+ def services(self, user_id):
+ return self._services_by_user[user_id]
+
+ def log_out_user(self, user_id):
+ if self.is_logged_in(user_id):
+ services = self._services_by_user[user_id]
+ services.close()
+ del self._services_by_user[user_id]
+
+ def add_session(self, user_id, services):
+ self._services_by_user[user_id] = services
+
+
@defer.inlineCallbacks
def start_user_agent(root_resource, leap_home, leap_session):
log.info('Bootstrap done, loading services for user %s' % leap_session.user_auth.username)
@@ -51,7 +72,11 @@ def start_user_agent(root_resource, leap_home, leap_session):
if leap_session.fresh_account:
yield add_welcome_mail(leap_session.mail_store)
+ servicesFactory = ServicesFactory()
+ servicesFactory.add_session(leap_session.user_auth.uuid, services)
+
root_resource.initialize(
+ servicesFactory,
services.keymanager,
services.search_engine,
services.mail_service,