summaryrefslogtreecommitdiff
path: root/addons/base_crypt/crypt.py
diff options
context:
space:
mode:
authorP. Christeas <p_christ@hol.gr>2010-12-28 12:41:00 +0200
committerP. Christeas <p_christ@hol.gr>2010-12-28 12:41:00 +0200
commit774983d16d3afe3b4e22ce0f3cde3c34c66b7dec (patch)
tree9e67c246213d82ba62f575e30465c26ef050c103 /addons/base_crypt/crypt.py
parentb102ade21f740d008611203cd38a28a83e28c866 (diff)
base_crypt: small changes, rearrange, to help merging with vmt's branch
bzr revid: p_christ@hol.gr-20101228104100-0cl0veaor9iv8q5n
Diffstat (limited to 'addons/base_crypt/crypt.py')
-rwxr-xr-xaddons/base_crypt/crypt.py47
1 files changed, 19 insertions, 28 deletions
diff --git a/addons/base_crypt/crypt.py b/addons/base_crypt/crypt.py
index 7283711209f..20899b3013c 100755
--- a/addons/base_crypt/crypt.py
+++ b/addons/base_crypt/crypt.py
@@ -124,21 +124,22 @@ def encrypt_md5( raw_pw, salt, magic=magic_md5 ):
return magic + salt + '$' + rearranged
-_salt_cache = {}
-
-
-#def check_super(passwd):
-# salt = _salt_cache[passwd]
-# if encrypt_md5( passwd, salt ) == tools.config['admin_passwd']:
-# return True
-# else:
-# raise Exception('AccessDenied')
-
-
class users(osv.osv):
_name="res.users"
_inherit="res.users"
+ def set_pw(self, cr, uid, id, name, value, args, context):
+ if not value:
+ raise osv.except_osv(_('Error'), _("Please specify the password !"))
+ self.write( cr, uid, id, { 'password' : encrypt_md5( value, gen_salt() ) } )
+ del value
+
+ def get_pw( self, cr, uid, ids, name, args, context ):
+ res = {}
+ for id in ids:
+ res[id] = ''
+ return res
+
def login(self, db, login, password):
if not password:
return False
@@ -155,9 +156,10 @@ class users(osv.osv):
return Exception('Access Denied')
def _login(self, cr, db, login, password):
- cr.execute( 'SELECT password FROM res_users WHERE login=%s', (login.encode( 'utf-8' ),) )
- stored_pw = cr.fetchone()
-
+ cr.execute( 'SELECT password FROM res_users WHERE login=%s',
+ (login.encode('utf-8'),))
+ stored_pw = id = cr.fetchone()
+
if stored_pw:
stored_pw = stored_pw[0]
else:
@@ -177,7 +179,7 @@ class users(osv.osv):
stored_pw = cr.fetchone()[0]
# Calculate an encrypted password from the user-provided
- # password ('encrypted_pw').
+ # password.
salt = _salt_cache[password] = stored_pw[3:11]
encrypted_pw = encrypt_md5( password, salt )
@@ -209,7 +211,8 @@ class users(osv.osv):
if not self.login(db,stored_login,passwd):
raise security.ExceptionNoTb('AccessDenied')
salt = _salt_cache[passwd]
- cr.execute('SELECT COUNT(*) FROM res_users WHERE id=%s AND password=%s', (int(uid), encrypt_md5( passwd, salt )) )
+ cr.execute('SELECT COUNT(*) FROM res_users WHERE id=%s AND password=%s',
+ (int(uid), encrypt_md5( passwd, salt )) )
res = cr.fetchone()[0]
cr.close()
if not bool(res):
@@ -229,16 +232,4 @@ class users(osv.osv):
raise security.ExceptionNoTb('Bad username or password')
return res[0]
- def set_pw( self, cr, uid, id, name, value, args, context ):
- if not value:
- raise osv.except_osv(_('Error'), _("Please specify the password !"))
- self.write( cr, uid, id, { 'password' : encrypt_md5( value, gen_salt() ) } )
- del value
-
- def get_pw( self, cr, uid, ids, name, args, context ):
- res = {}
- for id in ids:
- res[id] = ''
- return res
-
users() \ No newline at end of file