From a274d4cf3628816d21bb9848f019a444119b80a5 Mon Sep 17 00:00:00 2001 From: Bruno Wagner Date: Thu, 8 Sep 2016 16:16:42 -0300 Subject: Logging out a logged out user was breaking the UA In case a user was being logged out and there's a soledad invalid auth token error, there might be an inconsistent state where the user session doesn't exist when this second logout is tried. This was breaking the login for that user until the next UA restart, I adapted the code to make logging out an user idempotent to prevent this corner case --- service/pixelated/config/services.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'service/pixelated/config') diff --git a/service/pixelated/config/services.py b/service/pixelated/config/services.py index 494be703..f060c27c 100644 --- a/service/pixelated/config/services.py +++ b/service/pixelated/config/services.py @@ -98,9 +98,10 @@ class ServicesFactory(object): def destroy_session(self, user_id, using_email=False): if using_email: - user_id = self._map_email[user_id.split('@')[0]] + username = user_id.split('@')[0] + user_id = self._map_email.get(username, None) - if self.has_session(user_id): + if user_id is not None and self.has_session(user_id): _services = self._services_by_user[user_id] _services.close() del self._services_by_user[user_id] -- cgit v1.2.3