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):

Reply via email to