summaryrefslogtreecommitdiff
path: root/service/pixelated/application.py
diff options
context:
space:
mode:
authorNavaL <mnandri@thoughtworks.com>2016-05-22 12:12:08 +0200
committerNavaL <mnandri@thoughtworks.com>2016-05-22 12:12:08 +0200
commitee5b5198e89f23cd49d41dc58fb93443b5d8c9e1 (patch)
treea8d6075ac33cfa091a883c369bd2fc9508c65f1a /service/pixelated/application.py
parentdb0fd0a5a4d9961618074c2b97527f542878f99f (diff)
accomodates the case where the email address is the data sent with the event
- now username and user_id are mapped when the user logs in - Issue #686
Diffstat (limited to 'service/pixelated/application.py')
-rw-r--r--service/pixelated/application.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/service/pixelated/application.py b/service/pixelated/application.py
index 8eba0cd9..af29bc5f 100644
--- a/service/pixelated/application.py
+++ b/service/pixelated/application.py
@@ -44,6 +44,10 @@ class ServicesFactory(object):
def __init__(self, mode):
self._services_by_user = {}
self.mode = mode
+ self._map_email = {}
+
+ def map_email(self, username, user_id):
+ self._map_email[username] = user_id
def is_logged_in(self, user_id):
return user_id in self._services_by_user
@@ -51,7 +55,10 @@ class ServicesFactory(object):
def services(self, user_id):
return self._services_by_user[user_id]
- def log_out_user(self, user_id):
+ def log_out_user(self, user_id, using_email=False):
+ if using_email:
+ user_id = self._map_email[user_id.split('@')[0]]
+
if self.is_logged_in(user_id):
_services = self._services_by_user[user_id]
_services.close()
@@ -78,7 +85,7 @@ class SingleUserServicesFactory(object):
def services(self, user_id):
return self._services
- def log_out_user(self, user_id):
+ def log_out_user(self, user_id, using_email=False):
reactor.stop()
@@ -149,7 +156,8 @@ def add_top_level_system_callbacks(deferred, services_factory):
def _log_user_out(event, user_data):
log.info('Invalid soledad token, logging out %s' % user_data)
- services_factory.log_out_user(user_data['uuid'])
+ user_data = {'user_id': user_data['uuid']} if 'uuid' in user_data else {'user_id': user_data, 'using_email': True}
+ services_factory.log_out_user(**user_data)
def _log_user_out_on_token_expire(leap_session):
register(events.SOLEDAD_INVALID_AUTH_TOKEN, _log_user_out)