X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Futil%2Fuser.py;h=38449ccaf0aa80d2df5ed52c57b8bf99c56edb5a;hp=fd557a0e4a6295a62bf92058b5e730862f20740a;hb=aa5dc3b417db962a075a092d0d3528010c1059f7;hpb=c327645a032ae9e4fca84909d4708ca00230b1bc diff --git a/ipsilon/util/user.py b/ipsilon/util/user.py index fd557a0..38449cc 100644 --- a/ipsilon/util/user.py +++ b/ipsilon/util/user.py @@ -18,6 +18,7 @@ from ipsilon.util.data import UserStore from ipsilon.util.log import Log import cherrypy +import logging class Site(object): @@ -121,6 +122,8 @@ class UserSession(Log): def login(self, username, userattrs=None): if self.user == username: + if userattrs and not self.get_user_attrs(): + self.save_user_attrs(userattrs) return # REMOTE_USER changed, replace user @@ -140,7 +143,8 @@ class UserSession(Log): if not type(user) is User: raise TypeError # Completely reset user data - cherrypy.log.error('%s %s' % (user.name, user.fullname)) + cherrypy.log.error('%s %s' % (user.name, user.fullname), + severity=logging.INFO) user.reset() # Destroy current session in all cases @@ -154,8 +158,7 @@ class UserSession(Log): def save_user_attrs(self, userattrs): cherrypy.session['userattrs'] = userattrs - cherrypy.session.save() - self._debug('Saved user attrs') + self.debug('Saved user attrs') self.userattrs = userattrs def _get_provider_attr_name(self, provider): @@ -171,16 +174,14 @@ class UserSession(Log): def save_provider_data(self, provider, data): attr = self._get_provider_attr_name(provider) cherrypy.session[attr] = data - cherrypy.session.save() - self._debug('Saved %s provider data' % provider) + self.debug('Saved %s provider data' % provider) def save_data(self, facility, name, data): """ Save named data in the session so it can be retrieved later """ if facility not in cherrypy.session: cherrypy.session[facility] = dict() cherrypy.session[facility][name] = data - cherrypy.session.save() - self._debug('Saved session data named [%s:%s]' % (facility, name)) + self.debug('Saved session data named [%s:%s]' % (facility, name)) def get_data(self, facility, name): """ Get named data in the session if available """ @@ -198,8 +199,7 @@ class UserSession(Log): return cherrypy.session[facility][name] = None del cherrypy.session[facility][name] - self._debug('Nuked session data named [%s:%s]' % (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 facility [%s]' % (facility,))