From 24c2363907d4602b7e799b2abdbfb0ae238e834f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 28 Jul 2008 10:10:54 +0200 Subject: [PATCH] Add admin password for database creation for issue219 --- trytond/res/user.xml | 1 - trytond/tests/test_db.py | 2 +- trytond/web_service/db.py | 12 +++++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/trytond/res/user.xml b/trytond/res/user.xml index 463e56ba27..d3c8db1ad3 100644 --- a/trytond/res/user.xml +++ b/trytond/res/user.xml @@ -4,7 +4,6 @@ admin - admin Administrator Administrator diff --git a/trytond/tests/test_db.py b/trytond/tests/test_db.py index d0ae88f0fb..948f8cd5fb 100644 --- a/trytond/tests/test_db.py +++ b/trytond/tests/test_db.py @@ -32,7 +32,7 @@ class DBTestCase(unittest.TestCase): ''' Create database. ''' - SOCK.send(('db', 'create', ADMIN_PASSWORD, DB_NAME, 'en_US')) + SOCK.send(('db', 'create', ADMIN_PASSWORD, DB_NAME, 'en_US', PASSWORD)) res = SOCK.receive() self.assert_(res) diff --git a/trytond/web_service/db.py b/trytond/web_service/db.py index 8c19505b9a..91cdaec36f 100644 --- a/trytond/web_service/db.py +++ b/trytond/web_service/db.py @@ -9,6 +9,7 @@ from trytond import tools import base64 import os from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT +import sha class DB(Service): @@ -25,7 +26,7 @@ class DB(Service): self.export_method(self.db_exist) self.export_method(self.change_admin_password) - def create(self, password, db_name, lang): + def create(self, password, db_name, lang, admin_password): security.check_super(password) res = False @@ -56,11 +57,12 @@ class DB(Service): 'SET language = ' \ '(SELECT id FROM ir_lang WHERE code = %s LIMIT 1) '\ 'WHERE login <> \'root\'', (lang,)) + cursor.execute('UPDATE res_user ' \ + 'SET password = %s' \ + 'WHERE login = \'admin\'', + (sha.new(admin_password).hexdigest(),)) cursor.commit() - cursor.execute('SELECT login, login as password, name ' \ - 'FROM res_user ' \ - 'WHERE login <> \'root\' ORDER BY login') - res = cursor.dictfetchall() + res = True except: logger.notify_channel("web-service", LOG_ERROR, 'CREATE DB: %s failed' % (db_name,))