summaryrefslogtreecommitdiffstats
path: root/ipsilon/util/user.py
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-03-02 17:59:14 -0500
committerSimo Sorce <simo@redhat.com>2014-03-02 18:10:39 -0500
commit78198cc8a258ec9143c00b0b3c12d5c57a1f858d (patch)
tree8a8a68d383db7ea066eb9e3d4a08decf350f65da /ipsilon/util/user.py
parent3983bef596613acf4576957cfeea34dc7be421c4 (diff)
downloadipsilon-78198cc8a258ec9143c00b0b3c12d5c57a1f858d.tar.gz
ipsilon-78198cc8a258ec9143c00b0b3c12d5c57a1f858d.tar.xz
ipsilon-78198cc8a258ec9143c00b0b3c12d5c57a1f858d.zip
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 <simo@redhat.com>
Diffstat (limited to 'ipsilon/util/user.py')
-rwxr-xr-xipsilon/util/user.py22
1 files 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))