diff options
author | Folker Bernitt <fbernitt@thoughtworks.com> | 2016-01-18 15:39:59 +0100 |
---|---|---|
committer | Folker Bernitt <fbernitt@thoughtworks.com> | 2016-01-18 15:39:59 +0100 |
commit | c5d61bc8001b16e3dcedda9fd1229c27cca4bd3b (patch) | |
tree | a36fb87a31b7692d124b959ba32ba49f48a14ed8 /service/pixelated/application.py | |
parent | 0b06feff629f91d2fa4e7bdbe3b8e46b412e6158 (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.py | 25 |
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, |