From bf6cf86987d4bce3a26f1e0fcdb4fcbb0f3f93cd Mon Sep 17 00:00:00 2001 From: niphlod Date: Thu, 29 Aug 2013 00:43:34 +0200 Subject: [PATCH] send session cookie always. Please test it carefully with session data stored in cookies. --- gluon/globals.py | 5 ++++- gluon/tests/test_web.py | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/gluon/globals.py b/gluon/globals.py index 6dfe788c..ab6fe743 100644 --- a/gluon/globals.py +++ b/gluon/globals.py @@ -86,7 +86,7 @@ class SortingPickler(Pickler): self._batch_setitems([(key,obj[key]) for key in sorted(obj)]) SortingPickler.dispatch = copy.copy(Pickler.dispatch) -SortingPickler.dispatch[DictionaryType] = SortingPickler.save_dict +SortingPickler.dispatch[DictionaryType] = SortingPickler.save_dict def sorting_dumps(obj, protocol=None): file = cStringIO.StringIO() @@ -975,6 +975,7 @@ class Session(Storage): def _try_store_in_cookie(self, request, response): if self._forget or self._unchanged(response): + self.save_session_id_cookie() return False name = response.session_data_name compression_level = response.session_cookie_compression_level @@ -1006,6 +1007,7 @@ class Session(Storage): global_settings.db_sessions is not True and response.session_masterapp in global_settings.db_sessions): global_settings.db_sessions.remove(response.session_masterapp) + self.save_session_id_cookie() return False table = response.session_db_table @@ -1043,6 +1045,7 @@ class Session(Storage): def _try_store_in_file(self, request, response): try: if not response.session_id or self._forget or self._unchanged(response): + self.save_session_id_cookie() return False if response.session_new or not response.session_file: # Tests if the session sub-folder exists, if not, create it diff --git a/gluon/tests/test_web.py b/gluon/tests/test_web.py index 4c9a99f6..274a2cd4 100644 --- a/gluon/tests/test_web.py +++ b/gluon/tests/test_web.py @@ -122,7 +122,7 @@ class TestWeb(LiveTest): client.get('index') # COMMENTED BECAUSE FAILS BUT WHY? - # self.assertTrue('Welcome Homer' in client.text) + self.assertTrue('Welcome Homer' in client.text) client = WebClient('http://127.0.0.1:8000/admin/default/') client.post('index', data=dict(password='hello'))