Fix set password by refactoring

review1079003
This commit is contained in:
Cédric Krier committed 2013-09-25 19:21:50 +02:00
1 parent a7558e4e14
commit 263f8e57aa
2 files changed
+21 -28

No files matched your search

+14 -14
View File
@@ -5,7 +5,6 @@ import traceback
import logging
import time
import sys
import hashlib
import pydoc
from sql import Table
@@ -242,22 +241,23 @@ def create(database_name, password, lang, admin_password):
pool = Pool(database_name)
pool.init(update=True, lang=[lang])
with Transaction().start(database_name, 0) as transaction:
cursor = transaction.cursor
cursor.execute(*ir_lang.update([ir_lang.translatable], [True],
where=(ir_lang.code == lang)))
cursor.execute(*res_user.update([res_user.language],
[ir_lang.select(ir_lang.id,
where=(ir_lang.code == lang),
limit=1)],
where=(res_user.login != 'root')))
admin_password = hashlib.sha1(admin_password.encode('utf-8'))\
.hexdigest()
cursor.execute(*res_user.update([res_user.password],
[admin_password], where=(res_user.login == 'admin')))
User = pool.get('res.user')
Lang = pool.get('ir.lang')
language, = Lang.search([('code', '=', lang)])
language.translatable = True
language.save()
users = User.search([('login', '!=', 'root')])
User.write(users, {
'language': language.id,
})
admin, = User.search([('login', '=', 'admin')])
User.write([admin], {
'password': admin_password,
})
Module = pool.get('ir.module.module')
if Module:
Module.update_list()
cursor.commit()
transaction.cursor.commit()
res = True
except Exception:
logger.error('CREATE DB: %s failed' % (database_name,))
+7 -14
View File
@@ -10,11 +10,7 @@ import os
import signal
import time
from getpass import getpass
import hashlib
import threading
import string
import random
from sql import Table
from trytond.config import CONFIG
from trytond import backend
@@ -158,16 +154,13 @@ class TrytonServer(object):
break
with Transaction().start(db_name, 0) as transaction:
cursor = transaction.cursor
salt = ''.join(random.sample(
string.letters + string.digits, 8))
password += salt
password = hashlib.sha1(password).hexdigest()
user = Table('res_user')
cursor.execute(*user.update([user.password, user.salt],
[[password, salt]],
where=user.login == 'admin'))
cursor.commit()
pool = Pool()
User = pool.get('res.user')
admin, = User.search([('login', '=', 'admin')])
User.write([admin], {
'password': password,
})
transaction.cursor.commit()
if update:
self.logger.info('Update/Init succeed!')