diff -r b6b00bb1e528 -r 5de859b95988 cubicweb/server/repository.py --- 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