From 27128f26189d9a2794bfaf8e5d8081a3e3d5e9d7 Mon Sep 17 00:00:00 2001
From: Christophe Monniez <moc@odoo.com>
Date: Fri, 10 Nov 2017 10:56:31 +0100
Subject: [PATCH] [FIX] db: remove usage of get_dsn_parameters

get_dsn_parameters may return in some edges cases (like on runbot)
and empty value for the user.
So it should not be used here, instead, a SQL query is able to provide
the currently connected user.
Also, get_dsn_parameters is new in psycopg 2.7.
---
 odoo/service/db.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/odoo/service/db.py b/odoo/service/db.py
index 8621144e35d0..117dae69baa2 100644
--- a/odoo/service/db.py
+++ b/odoo/service/db.py
@@ -361,7 +361,8 @@ def list_dbs(force=False):
     db = odoo.sql_db.db_connect('postgres')
     with closing(db.cursor()) as cr:
         try:
-            db_user = cr._cnx.get_dsn_parameters().get('user')
+            cr.execute('SELECT current_user')
+            db_user = cr.fetchone()
             if db_user:
                 cr.execute("select datname from pg_database where datdba=(select usesysid from pg_user where usename=%s) and not datistemplate and datallowconn and datname not in %s order by datname", (db_user, templates_list))
             else:
-- 
GitLab