Factorize pool initialization

This commit is contained in:
Cédric Krier committed 2012-03-16 12:11:05 +01:00
1 parent b85b94e2e7
commit 90f33676c0
1 file changed
+11 -12
+11 -12
View File
@@ -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):