cubicweb/server/repository.py
changeset 11195 5de859b95988
parent 11129 97095348b3ee
child 11199 2fe2077cc92d
--- a/cubicweb/server/repository.py	Wed Mar 09 14:11:47 2016 +0100
+++ b/cubicweb/server/repository.py	Thu Jun 12 15:54:44 2014 +0200
@@ -633,7 +633,7 @@
             return rset.rows
 
     def new_session(self, login, **kwargs):
-        """open a new session for a given user
+        """open a *new* session for a given user
 
         raise `AuthenticationError` if the authentication failed
         raise `ConnectionError` if we can't open a connection
@@ -655,33 +655,20 @@
             cnx.commit()
         return session
 
+    @deprecated('[3.23] use .new_session instead (and get a plain session object)')
     def connect(self, login, **kwargs):
-        """open a new session for a given user and return its sessionid """
         return self.new_session(login, **kwargs).sessionid
 
-    def close(self, sessionid, txid=None, checkshuttingdown=True):
-        """close the session with the given id"""
-        session = self._get_session(sessionid, txid=txid,
-                                    checkshuttingdown=checkshuttingdown)
-        # operation uncommited before close are rolled back before hook is called
-        with session.new_cnx() as cnx:
-            self.hm.call_hooks('session_close', cnx)
-            # commit connection at this point in case write operation has been
-            # done during `session_close` hooks
-            cnx.commit()
-        session.close()
-        del self._sessions[sessionid]
-        self.info('closed session %s for user %s', sessionid, session.user.login)
+    @deprecated('[3.23] use session.close() directly')
+    def close(self, sessionid):
+        self._get_session(sessionid).close()
 
     # session handling ########################################################
 
     def close_sessions(self):
         """close every opened sessions"""
-        for sessionid in list(self._sessions):
-            try:
-                self.close(sessionid, checkshuttingdown=False)
-            except Exception: # XXX BaseException?
-                self.exception('error while closing session %s' % sessionid)
+        for session in list(self._sessions.values()):
+            session.close()
 
     def clean_sessions(self):
         """close sessions not used since an amount of time specified in the
@@ -691,9 +678,9 @@
         self.debug('cleaning session unused since %s',
                    strftime('%H:%M:%S', localtime(mintime)))
         nbclosed = 0
-        for session in self._sessions.values():
+        for session in list(self._sessions.values()):
             if session.timestamp < mintime:
-                self.close(session.sessionid)
+                session.close()
                 nbclosed += 1
         return nbclosed