summaryrefslogtreecommitdiff
path: root/server/user_session.py
diff options
context:
space:
mode:
Diffstat (limited to 'server/user_session.py')
-rw-r--r--server/user_session.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/server/user_session.py b/server/user_session.py
index 739da9a..dbf886c 100644
--- a/server/user_session.py
+++ b/server/user_session.py
@@ -154,6 +154,21 @@ class UserSession(object):
pass
db.return_connection(conn)
+ def logout(self):
+ """Logs out the session, rendering it anonymous."""
+ with self._access_lock:
+ lang_session = self._lang_session
+ self._lang_session = None
+ uid = self.uid
+ sid = self.sid
+ username = self.username
+ self.uid = None
+ self.username = None
+ self.settings = {}
+ if lang_session is not None: # do not handle the language session holding the lock: we may deadlock if the callee calls the caller
+ lang_session.destroy()
+ logging.debug('User session logged out: username={0}, uid={1}, sid={2}'.format(username, uid, sid))
+
def destroy(self):
"""Destroys the session."""
with module_access_lock: