summaryrefslogtreecommitdiff
path: root/addons/base_crypt
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@tinyerp.com>2012-10-26 09:57:15 +0200
committerFabien Pinckaers <fp@tinyerp.com>2012-10-26 09:57:15 +0200
commitdd3e728fb60cc91e2a8cf0fcc455c225a53df7b2 (patch)
tree8615fbd18b69474277a6e70a4d9986c3c9337b7b /addons/base_crypt
parente08f2e5102dac500f1a1422fa9fc7a2ec43c7bb9 (diff)
parent93be12ab1e1bd607b3a4f04f69a310622a4205ed (diff)
[MERGE] + improve hr_timesheet
bzr revid: fp@tinyerp.com-20121026075715-kq910tdzhc1uul3l
Diffstat (limited to 'addons/base_crypt')
-rw-r--r--addons/base_crypt/crypt.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py
index 81a60a5dd5f..14e029eb988 100644
--- a/addons/base_crypt/crypt.py
+++ b/addons/base_crypt/crypt.py
@@ -140,18 +140,20 @@ class users(osv.osv):
# Add handlers for 'input_pw' field.
def set_pw(self, cr, uid, id, name, value, args, context):
- if not value:
- raise osv.except_osv(_('Error!'), _("You have to specify a password."))
+ if value:
+ obj = pooler.get_pool(cr.dbname).get('res.users')
+ if not hasattr(obj, "_salt_cache"):
+ obj._salt_cache = {}
- obj = pooler.get_pool(cr.dbname).get('res.users')
- if not hasattr(obj, "_salt_cache"):
- obj._salt_cache = {}
+ salt = obj._salt_cache[id] = gen_salt()
+ encrypted = encrypt_md5(value, salt)
- salt = obj._salt_cache[id] = gen_salt()
- encrypted = encrypt_md5(value, salt)
+ else:
+ #setting a password to '' is allowed. It can be used to inactivate the classic log-in of the user
+ #while the access can still be granted by another login method (openid...)
+ encrypted = ''
cr.execute('update res_users set password=%s where id=%s',
(encrypted.encode('utf-8'), int(id)))
- cr.commit()
del value
def get_pw( self, cr, uid, ids, name, args, context ):