From 78198cc8a258ec9143c00b0b3c12d5c57a1f858d Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Sun, 2 Mar 2014 17:59:14 -0500 Subject: [PATCH] Create a user facility in the session This way all identification data about the user can be managed in a single place and be erased/replaced at login time. Signed-off-by: Simo Sorce --- ipsilon/util/user.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/ipsilon/util/user.py b/ipsilon/util/user.py index 387df11..72c5041 100755 --- a/ipsilon/util/user.py +++ b/ipsilon/util/user.py @@ -93,7 +93,7 @@ class User(object): class UserSession(object): def __init__(self): - self.user = cherrypy.session.get('user', None) + self.user = self.get_data('user', 'name') def _debug(self, fact): if cherrypy.config.get('debug', False): @@ -111,8 +111,8 @@ class UserSession(object): return # REMOTE_USER changed, replace user - cherrypy.session['user'] = username - cherrypy.session.save() + self.nuke_data('user') + self.save_data('user', 'name', username) cherrypy.log('LOGIN SUCCESSFUL: %s', username) @@ -143,12 +143,16 @@ class UserSession(object): return None return cherrypy.session[facility][name] - def nuke_data(self, facility, name): + def nuke_data(self, facility, name=None): if facility not in cherrypy.session: return - if name not in cherrypy.session[facility]: - return - cherrypy.session[facility][name] = None - del cherrypy.session[facility][name] + if name: + if name not in cherrypy.session[facility]: + return + cherrypy.session[facility][name] = None + del cherrypy.session[facility][name] + self._debug('Nuked session data named [%s:%s]' % (facility, name)) + else: + del cherrypy.session[facility] + self._debug('Nuked session facility [%s]' % (facility,)) cherrypy.session.save() - self._debug('Nuked session data named [%s:%s]' % (facility, name)) -- 2.20.1