summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/pixelated/application.py2
-rw-r--r--service/pixelated/config/services.py11
-rw-r--r--service/pixelated/resources/__init__.py2
-rw-r--r--service/pixelated/resources/auth.py2
-rw-r--r--service/pixelated/resources/login_resource.py2
-rw-r--r--service/pixelated/resources/logout_resource.py6
-rw-r--r--service/test/unit/resources/test_login_resource.py10
-rw-r--r--service/test/unit/resources/test_logout_resources.py2
-rw-r--r--service/test/unit/test_application.py2
9 files changed, 21 insertions, 18 deletions
diff --git a/service/pixelated/application.py b/service/pixelated/application.py
index 7d8cd76c..65e974b6 100644
--- a/service/pixelated/application.py
+++ b/service/pixelated/application.py
@@ -113,7 +113,7 @@ 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)
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)
+ services_factory.destroy_session(**user_data)
def _log_user_out_on_token_expire(leap_session):
register(events.SOLEDAD_INVALID_AUTH_TOKEN, _log_user_out)
diff --git a/service/pixelated/config/services.py b/service/pixelated/config/services.py
index cec4803e..b36eb0bb 100644
--- a/service/pixelated/config/services.py
+++ b/service/pixelated/config/services.py
@@ -90,17 +90,17 @@ class ServicesFactory(object):
def map_email(self, username, user_id):
self._map_email[username] = user_id
- def is_logged_in(self, user_id):
+ def has_session(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, using_email=False):
+ def destroy_session(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):
+ if self.has_session(user_id):
_services = self._services_by_user[user_id]
_services.close()
del self._services_by_user[user_id]
@@ -126,5 +126,8 @@ class SingleUserServicesFactory(object):
def services(self, user_id):
return self._services
- def log_out_user(self, user_id, using_email=False):
+ def has_session(self, user_id):
+ return True
+
+ def destroy_session(self, user_id, using_email=False):
reactor.stop()
diff --git a/service/pixelated/resources/__init__.py b/service/pixelated/resources/__init__.py
index 8fc8080a..0015db16 100644
--- a/service/pixelated/resources/__init__.py
+++ b/service/pixelated/resources/__init__.py
@@ -72,7 +72,7 @@ class BaseResource(Resource):
def is_logged_in(self, request):
session = self.get_session(request)
- return session.is_logged_in() and self._services_factory.is_logged_in(session.user_uuid)
+ return session.is_logged_in() and self._services_factory.has_session(session.user_uuid)
def get_session(self, request):
return IPixelatedSession(request.getSession())
diff --git a/service/pixelated/resources/auth.py b/service/pixelated/resources/auth.py
index a6ab5396..5aedad3a 100644
--- a/service/pixelated/resources/auth.py
+++ b/service/pixelated/resources/auth.py
@@ -82,7 +82,7 @@ class SessionChecker(object):
def requestAvatarId(self, credentials):
session = self.get_session(credentials.request)
- if session.is_logged_in() and self._services_factory.is_logged_in(session.user_uuid):
+ if session.is_logged_in() and self._services_factory.has_session(session.user_uuid):
return defer.succeed(session.user_uuid)
return defer.succeed(ANONYMOUS)
diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py
index eaa21bd9..ab91176a 100644
--- a/service/pixelated/resources/login_resource.py
+++ b/service/pixelated/resources/login_resource.py
@@ -159,7 +159,7 @@ class LoginResource(BaseResource):
@defer.inlineCallbacks
def _setup_user_services(self, leap_session, request):
user_id = leap_session.user_auth.uuid
- if not self._services_factory.is_logged_in(user_id):
+ if not self._services_factory.has_session(user_id):
yield self._services_factory.create_services_from(leap_session)
self._services_factory.map_email(self.creds.username, user_id)
diff --git a/service/pixelated/resources/logout_resource.py b/service/pixelated/resources/logout_resource.py
index 4c700afe..a4fe584f 100644
--- a/service/pixelated/resources/logout_resource.py
+++ b/service/pixelated/resources/logout_resource.py
@@ -28,9 +28,9 @@ class LogoutResource(BaseResource):
@defer.inlineCallbacks
def _execute_logout(self, request):
- session = self.get_session(request)
- yield self._services_factory.log_out_user(session.user_uuid)
- session.expire()
+ http_session = self.get_session(request)
+ yield self._services_factory.destroy_session(http_session.user_uuid)
+ http_session.expire()
def render_POST(self, request):
def _redirect_to_login(_):
diff --git a/service/test/unit/resources/test_login_resource.py b/service/test/unit/resources/test_login_resource.py
index 09bc79bf..2fba72fd 100644
--- a/service/test/unit/resources/test_login_resource.py
+++ b/service/test/unit/resources/test_login_resource.py
@@ -37,7 +37,7 @@ class TestLoginResource(unittest.TestCase):
def test_there_are_no_grand_children_resources_when_logged_in(self, mock_is_logged_in):
request = DummyRequest(['/login/grand_children'])
mock_is_logged_in.return_value = True
- when(self.services_factory).is_logged_in(ANY()).thenReturn(True)
+ when(self.services_factory).has_session(ANY()).thenReturn(True)
d = self.web.get(request)
@@ -168,7 +168,7 @@ class TestLoginPOST(unittest.TestCase):
self.user_auth = user_auth
def mock_user_has_services_setup(self):
- when(self.services_factory).is_logged_in('some_user_uuid').thenReturn(True)
+ when(self.services_factory).has_session('some_user_uuid').thenReturn(True)
def test_login_responds_interstitial_and_add_corresponding_session_to_services_factory(self):
irrelevant = None
@@ -191,13 +191,13 @@ class TestLoginPOST(unittest.TestCase):
def test_login_does_not_reload_services_if_already_loaded(self):
irrelevant = None
when(self.portal).login(ANY(), None, IResource).thenReturn((irrelevant, self.leap_session, irrelevant))
- when(self.services_factory).is_logged_in('some_user_uuid').thenReturn(True)
+ when(self.services_factory).has_session('some_user_uuid').thenReturn(True)
d = self.web.get(self.request)
def assert_login_setup_service_for_user(_):
verify(self.portal).login(ANY(), None, IResource)
- verify(self.services_factory).is_logged_in('some_user_uuid')
+ verify(self.services_factory).has_session('some_user_uuid')
verifyNoMoreInteractions(self.services_factory)
interstitial_js_in_template = '<script src="startup-assets/Interstitial.js"></script>'
self.assertIn(interstitial_js_in_template, self.request.written[0])
@@ -242,7 +242,7 @@ class TestLoginPOST(unittest.TestCase):
@patch('pixelated.resources.session.PixelatedSession.is_logged_in')
def test_should_not_process_login_if_already_logged_in(self, mock_logged_in, mock_redirect):
mock_logged_in.return_value = True
- when(self.services_factory).is_logged_in(ANY()).thenReturn(True)
+ when(self.services_factory).has_session(ANY()).thenReturn(True)
mock_redirect.return_value = "mocked redirection"
when(self.portal).login(ANY(), None, IResource).thenRaise(Exception())
d = self.web.get(self.request)
diff --git a/service/test/unit/resources/test_logout_resources.py b/service/test/unit/resources/test_logout_resources.py
index 49866057..845fcde9 100644
--- a/service/test/unit/resources/test_logout_resources.py
+++ b/service/test/unit/resources/test_logout_resources.py
@@ -32,7 +32,7 @@ class TestLogoutResource(unittest.TestCase):
def expire_session_and_redirect(_):
session = self.resource.get_session(request)
- self.services_factory.log_out_user.assert_called_once_with(session.user_uuid)
+ self.services_factory.destroy_session.assert_called_once_with(session.user_uuid)
session.expire.assert_called_once_with()
mock_redirect.assert_called_once_with('/login', request)
diff --git a/service/test/unit/test_application.py b/service/test/unit/test_application.py
index 87cb6871..649fd62b 100644
--- a/service/test/unit/test_application.py
+++ b/service/test/unit/test_application.py
@@ -83,7 +83,7 @@ class ApplicationTest(unittest.TestCase):
services_factory_mock = MagicMock()
mock_service_log_user_out = MagicMock(return_value=None)
- services_factory_mock.log_out_user = mock_service_log_user_out
+ services_factory_mock.destroy_session = mock_service_log_user_out
leap_session = MagicMock()
register_mock = events_mock.register