base_crypt: small changes, rearrange, to help merging with vmt's branch

bzr revid: p_christ@hol.gr-20101228104100-0cl0veaor9iv8q5n
This commit is contained in:
P. Christeas
2010-12-28 12:41:00 +02:00
parent b102ade21f
commit 774983d16d
3 changed files with 20 additions and 61 deletions
@@ -26,10 +26,7 @@
"category" : "Generic Modules/Base",
"description": "Module for password encryption.",
"depends" : ["base"],
"init_xml" : [],
"demo_xml" : [],
"update_xml" : [
],
"data" : [],
"active": False,
"installable": True,
}
-29
View File
@@ -1,29 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="ir.ui.view" id="view_users_form_simple_modif_inherit">
<field name="name">res.users.form.modif.inherit</field>
<field name="model">res.users</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_users_form_simple_modif"/>
<field name="priority" eval="10"/>
<field name="arch" type="xml">
<field name="password" position="replace">
<field name="input_pw" password="True"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="view_users_form_inherit1">
<field name="name">res.users.form.inherit1</field>
<field name="model">res.users</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_users_form"/>
<field name="arch" type="xml">
<field name="password" position="replace">
<field name="input_pw" password="True"/>
</field>
</field>
</record>
</data>
</openerp>
+19 -28
View File
@@ -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()