From 90f33676c01a09ea37e9381a36e85ac112fe9136 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 16 Mar 2012 12:11:05 +0100 Subject: [PATCH] Factorize pool initialization --- trytond/security.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/trytond/security.py b/trytond/security.py index 2d8ece8233..ce7dcbce15 100644 --- a/trytond/security.py +++ b/trytond/security.py @@ -6,12 +6,17 @@ from trytond.transaction import Transaction from trytond.exceptions import NotLogged +def _get_pool(dbname): + database_list = Pool.database_list() + pool = Pool(dbname) + if not dbname in database_list: + pool.init() + return pool + + def login(dbname, loginname, password, cache=True): with Transaction().start(dbname, 0) as transaction: - database_list = Pool.database_list() - pool = Pool(dbname) - if not dbname in database_list: - pool.init() + pool = _get_pool(dbname) user_obj = pool.get('res.user') password = password.decode('utf-8') user_id = user_obj.get_login(loginname, password) @@ -29,10 +34,7 @@ def login(dbname, loginname, password, cache=True): def logout(dbname, user, session): with Transaction().start(dbname, 0) as transaction: - database_list = Pool.database_list() - pool = Pool(dbname) - if not dbname in database_list: - pool.init() + pool = _get_pool(dbname) session_obj = pool.get('ir.session') session_id, = session_obj.search([ ('key', '=', session), @@ -57,10 +59,7 @@ def check(dbname, user, session): if not user: raise NotLogged() with Transaction().start(dbname, user) as transaction: - database_list = Pool.database_list() - pool = Pool(dbname) - if not dbname in database_list: - pool.init() + pool = _get_pool(dbname) session_obj = pool.get('ir.session') try: if not session_obj.check(user, session):