changeset 0e85484ba68e in trytond:5.0
details: https://hg.tryton.org/trytond?cmd=changeset;node=0e85484ba68e
description:
Stop retry to remove session once it succeed
After the removal the loop must be broken and if no session has been
removed
it should log an error message.
issue7852
review74421002
(grafted from 1dc9b0a15c22333470b1a11c75949b14d401c430)
diffstat:
trytond/security.py | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diffs (39 lines):
diff -r 7d64a0a6acb7 -r 0e85484ba68e trytond/security.py
--- a/trytond/security.py Wed Nov 07 19:02:34 2018 +0100
+++ b/trytond/security.py Sun Nov 18 12:07:17 2018 +0100
@@ -32,6 +32,7 @@
User = pool.get('res.user')
try:
user_id = User.get_login(loginname, parameters)
+ break
except DatabaseOperationalError:
if count:
continue
@@ -40,7 +41,6 @@
# Let's store any changes done
transaction.commit()
raise
- break
session = None
if user_id:
if not cache:
@@ -65,12 +65,17 @@
Session = pool.get('ir.session')
try:
name = Session.remove(session)
+ break
except DatabaseOperationalError:
if count:
continue
raise
- logger.info("logout for '%s' from '%s' on database '%s'",
- name, _get_remote_addr(context), dbname)
+ if name:
+ logger.info("logout for '%s' from '%s' on database '%s'",
+ name, _get_remote_addr(context), dbname)
+ else:
+ logger.error("logout failed for '%s' from '%s' on database '%s'",
+ user, _get_remote_addr(context), dbname)
def check(dbname, user, session, context=None):