goa/appobjects/sessions.py
branchtls-sprint
changeset 1802 d628defebc17
parent 1131 544609e83317
child 1977 606923dff11b
--- a/goa/appobjects/sessions.py	Thu May 14 10:24:56 2009 +0200
+++ b/goa/appobjects/sessions.py	Thu May 14 11:38:40 2009 +0200
@@ -41,10 +41,10 @@
     def __init__(self, *args, **kwargs):
         super(GAEAuthenticationManager, self).__init__(*args, **kwargs)
         self._repo = self.config.repository(vreg=self.vreg)
-        
+
     def authenticate(self, req, _login=None, _password=None):
         """authenticate user and return an established connection for this user
-        
+
         :raise ExplicitLogin: if authentication is required (no authentication
         info found or wrong user/password)
         """
@@ -75,7 +75,7 @@
     def __init__(self, *args, **kwargs):
         super(GAEPersistentSessionManager, self).__init__(*args, **kwargs)
         self._repo = self.config.repository(vreg=self.vreg)
-        
+
     def get_session(self, req, sessionid):
         """return existing session for the given session identifier"""
         # search a record for the given session
@@ -126,7 +126,7 @@
         record['anonymous_connection'] = cnx.anonymous_connection
         Put(record)
         return self._get_proxy(req, record, cnx, user)
-    
+
     def close_session(self, proxy):
         """close session on logout or on invalid session detected (expired out,
         corrupted...)
@@ -136,7 +136,7 @@
     def current_sessions(self):
         for record in Query('CubicWebSession').Run():
             yield ConnectionProxy(record)
-            
+
     def _get_proxy(self, req, record, cnx, user):
         proxy = ConnectionProxy(record, cnx, user)
         user.req = req
@@ -145,7 +145,7 @@
 
 
 class ConnectionProxy(object):
-    
+
     def __init__(self, record, cnx=None, user=None):
         self.__record = record
         self.__cnx = cnx
@@ -153,7 +153,7 @@
         self.__data = None
         self.__is_dirty = False
         self.sessionid = record.key().name()[4:] # remove 'key_' prefix
-        
+
     def __repr__(self):
         sstr = '<ConnectionProxy %s' % self.sessionid
         if self.anonymous_connection:
@@ -162,7 +162,7 @@
             sstr += ' for %s' % self.__user.login
         sstr += ', last used %s>' % strftime('%T', localtime(self.last_usage_time))
         return sstr
-        
+
     def __getattribute__(self, name):
         try:
             return super(ConnectionProxy, self).__getattribute__(name)
@@ -174,7 +174,7 @@
         self.__record['last_usage_time'] = value
     def _get_last_usage_time(self):
         return self.__record['last_usage_time']
-    
+
     last_usage_time = property(_get_last_usage_time, _set_last_usage_time)
 
     @property
@@ -182,7 +182,7 @@
         # use get() for bw compat if sessions without anonymous information are
         # found. Set default to True to limit lifetime of those sessions.
         return self.__record.get('anonymous_connection', True)
-        
+
     @property
     @cached
     def data(self):
@@ -194,7 +194,7 @@
                 self.exception('corrupted session data for session %s',
                                self.__cnx)
         return {}
-        
+
     def get_session_data(self, key, default=None, pop=False):
         """return value associated to `key` in session data"""
         if pop:
@@ -206,20 +206,20 @@
                 return default
         else:
             return self.data.get(key, default)
-        
+
     def set_session_data(self, key, value):
         """set value associated to `key` in session data"""
         self.data[key] = value
         self.__is_dirty = True
-        
+
     def del_session_data(self, key):
         """remove value associated to `key` in session data"""
         try:
             del self.data[key]
             self.__is_dirty = True
         except KeyError:
-            pass    
-            
+            pass
+
     def commit(self):
         if self.__is_dirty:
             self.__save()
@@ -233,7 +233,7 @@
         if self.__cnx is not None:
             self.__cnx.close()
         Delete(self.__record)
-        
+
     def __save(self):
         if self.__is_dirty:
             self.__record['data'] = Blob(dumps(self.data))
@@ -243,7 +243,7 @@
     def user(self, req=None, props=None):
         """return the User object associated to this connection"""
         return self.__user
-        
+
 
 import logging
 from cubicweb import set_log_methods
@@ -256,7 +256,7 @@
 class SessionsCleaner(StartupView):
     id = 'cleansessions'
     __select__ = none_rset() & match_user_groups('managers')
-    
+
     def call(self):
         # clean web session
         session_manager = application.SESSION_MANAGER
@@ -270,7 +270,7 @@
         self.w(u'%s remaining sessions<br/>\n' % remaining)
         self.w(u'</div>')
 
-        
+
 def registration_callback(vreg):
     vreg.register(SessionsCleaner)
     vreg.register(GAEAuthenticationManager, clear=True)