From 7a6e94edd83e9e73e56d2d148e3238618195cf9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lionel=20Sausin=20=28Num=C3=A9rigraphe=29?= Date: Thu, 16 Oct 2014 15:25:34 +0200 Subject: [PATCH] [IMP] list_databases: Ignore special databases Automatically ignore template databases identified in Postgres, and databases where connexion is not allowed --- openerp/service/db.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openerp/service/db.py b/openerp/service/db.py index bfb04eb8e0b..e8d3c456cb9 100644 --- a/openerp/service/db.py +++ b/openerp/service/db.py @@ -303,7 +303,7 @@ def list_dbs(force=False): if not openerp.tools.config['list_db'] and not document: raise openerp.exceptions.AccessDenied() chosen_template = openerp.tools.config['db_template'] - templates_list = tuple(set(['template0', 'template1', 'postgres', chosen_template])) + templates_list = tuple(set(['postgres', chosen_template])) db = openerp.sql_db.db_connect('postgres') with closing(db.cursor()) as cr: try: @@ -316,9 +316,9 @@ def list_dbs(force=False): res = cr.fetchone() db_user = res and str(res[0]) if db_user: - cr.execute("select datname from pg_database where datdba=(select usesysid from pg_user where usename=%s) and datname not in %s order by datname", (db_user, templates_list)) + 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: - cr.execute("select datname from pg_database where datname not in %s order by datname", (templates_list,)) + cr.execute("select datname from pg_database where not datistemplate and datallowconn and datname not in %s order by datname", (templates_list,)) res = [openerp.tools.ustr(name) for (name,) in cr.fetchall()] except Exception: res = []