res_user: fix default args, close db cursors.
Conflicts: bin/addons/base/res/res_user.py bzr revid: p_christ@hol.gr-20101123152029-c823isjqrpml7dva
This commit is contained in:
parent
3e3270264f
commit
b4e5c51311
|
@ -46,7 +46,7 @@ class groups(osv.osv):
|
||||||
('name_uniq', 'unique (name)', 'The name of the group must be unique !')
|
('name_uniq', 'unique (name)', 'The name of the group must be unique !')
|
||||||
]
|
]
|
||||||
|
|
||||||
def copy(self, cr, uid, id, default=None, context={}):
|
def copy(self, cr, uid, id, default=None, context=None):
|
||||||
group_name = self.read(cr, uid, [id], ['name'])[0]['name']
|
group_name = self.read(cr, uid, [id], ['name'])[0]['name']
|
||||||
default.update({'name': _('%s (copy)')%group_name})
|
default.update({'name': _('%s (copy)')%group_name})
|
||||||
return super(groups, self).copy(cr, uid, id, default, context)
|
return super(groups, self).copy(cr, uid, id, default, context)
|
||||||
|
@ -83,14 +83,14 @@ class groups(osv.osv):
|
||||||
|
|
||||||
groups()
|
groups()
|
||||||
|
|
||||||
def _lang_get(self, cr, uid, context={}):
|
def _lang_get(self, cr, uid, context=None):
|
||||||
obj = self.pool.get('res.lang')
|
obj = self.pool.get('res.lang')
|
||||||
ids = obj.search(cr, uid, [('translatable','=',True)])
|
ids = obj.search(cr, uid, [('translatable','=',True)])
|
||||||
res = obj.read(cr, uid, ids, ['code', 'name'], context)
|
res = obj.read(cr, uid, ids, ['code', 'name'], context=context)
|
||||||
res = [(r['code'], r['name']) for r in res]
|
res = [(r['code'], r['name']) for r in res]
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def _tz_get(self,cr,uid, context={}):
|
def _tz_get(self,cr,uid, context=None):
|
||||||
return [(x, x) for x in pytz.all_timezones]
|
return [(x, x) for x in pytz.all_timezones]
|
||||||
|
|
||||||
class users(osv.osv):
|
class users(osv.osv):
|
||||||
|
@ -373,7 +373,7 @@ class users(osv.osv):
|
||||||
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit)
|
ids = self.search(cr, user, [('name',operator,name)]+ args, limit=limit)
|
||||||
return self.name_get(cr, user, ids)
|
return self.name_get(cr, user, ids)
|
||||||
|
|
||||||
def copy(self, cr, uid, id, default=None, context={}):
|
def copy(self, cr, uid, id, default=None, context=None):
|
||||||
user2copy = self.read(cr, uid, [id], ['login','name'])[0]
|
user2copy = self.read(cr, uid, [id], ['login','name'])[0]
|
||||||
if default is None:
|
if default is None:
|
||||||
default = {}
|
default = {}
|
||||||
|
@ -395,10 +395,10 @@ class users(osv.osv):
|
||||||
result[k[8:]] = res or False
|
result[k[8:]] = res or False
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def action_get(self, cr, uid, context={}):
|
def action_get(self, cr, uid, context=None):
|
||||||
dataobj = self.pool.get('ir.model.data')
|
dataobj = self.pool.get('ir.model.data')
|
||||||
data_id = dataobj._get_id(cr, 1, 'base', 'action_res_users_my')
|
data_id = dataobj._get_id(cr, 1, 'base', 'action_res_users_my')
|
||||||
return dataobj.browse(cr, uid, data_id, context).res_id
|
return dataobj.browse(cr, uid, data_id, context=context).res_id
|
||||||
|
|
||||||
|
|
||||||
def login(self, db, login, password):
|
def login(self, db, login, password):
|
||||||
|
@ -408,12 +408,19 @@ class users(osv.osv):
|
||||||
cr.execute('select id from res_users where login=%s and password=%s and active', (tools.ustr(login), tools.ustr(password)))
|
cr.execute('select id from res_users where login=%s and password=%s and active', (tools.ustr(login), tools.ustr(password)))
|
||||||
res = cr.fetchone()
|
res = cr.fetchone()
|
||||||
result = False
|
result = False
|
||||||
if res:
|
try:
|
||||||
cr.execute("update res_users set date=%s where id=%s", (time.strftime('%Y-%m-%d %H:%M:%S'),res[0]))
|
cr.execute('SELECT id FROM res_users WHERE login=%s AND password=%s AND active',
|
||||||
cr.commit()
|
(tools.ustr(login), tools.ustr(password)))
|
||||||
result = res[0]
|
res = cr.fetchone()
|
||||||
cr.close()
|
if res:
|
||||||
return result
|
cr.execute("UPDATE res_users SET date=%s WHERE id=%s", (time.strftime('%Y-%m-%d %H:%M:%S'),res[0]))
|
||||||
|
cr.commit()
|
||||||
|
return res[0]
|
||||||
|
else:
|
||||||
|
return False
|
||||||
|
finally:
|
||||||
|
cr.close()
|
||||||
|
|
||||||
def check_super(self, passwd):
|
def check_super(self, passwd):
|
||||||
if passwd == tools.config['admin_passwd']:
|
if passwd == tools.config['admin_passwd']:
|
||||||
return True
|
return True
|
||||||
|
@ -427,29 +434,34 @@ class users(osv.osv):
|
||||||
if (cached_pass is not None) and cached_pass == passwd:
|
if (cached_pass is not None) and cached_pass == passwd:
|
||||||
return True
|
return True
|
||||||
cr = pooler.get_db(db).cursor()
|
cr = pooler.get_db(db).cursor()
|
||||||
cr.execute('select count(1) from res_users where id=%s and password=%s and active=%s', (int(uid), passwd, True))
|
try:
|
||||||
res = cr.fetchone()[0]
|
cr.execute('SELECT COUNT(1) FROM res_users WHERE id=%s AND password=%s AND active=%s',
|
||||||
cr.close()
|
(int(uid), passwd, True))
|
||||||
if not bool(res):
|
res = cr.fetchone()[0]
|
||||||
raise security.ExceptionNoTb('AccessDenied')
|
if not bool(res):
|
||||||
if res:
|
raise security.ExceptionNoTb('AccessDenied')
|
||||||
if self._uid_cache.has_key(db):
|
if res:
|
||||||
ulist = self._uid_cache[db]
|
if self._uid_cache.has_key(db):
|
||||||
ulist[uid] = passwd
|
ulist = self._uid_cache[db]
|
||||||
else:
|
ulist[uid] = passwd
|
||||||
self._uid_cache[db] = {uid:passwd}
|
else:
|
||||||
return bool(res)
|
self._uid_cache[db] = {uid:passwd}
|
||||||
|
return bool(res)
|
||||||
|
finally:
|
||||||
|
cr.close()
|
||||||
|
|
||||||
def access(self, db, uid, passwd, sec_level, ids):
|
def access(self, db, uid, passwd, sec_level, ids):
|
||||||
if not passwd:
|
if not passwd:
|
||||||
return False
|
return False
|
||||||
cr = pooler.get_db(db).cursor()
|
cr = pooler.get_db(db).cursor()
|
||||||
cr.execute('select id from res_users where id=%s and password=%s', (uid, passwd))
|
try:
|
||||||
res = cr.fetchone()
|
cr.execute('SELECT id FROM res_users WHERE id=%s AND password=%s', (uid, passwd))
|
||||||
cr.close()
|
res = cr.fetchone()
|
||||||
if not res:
|
if not res:
|
||||||
raise security.ExceptionNoTb('Bad username or password')
|
raise security.ExceptionNoTb('Bad username or password')
|
||||||
return res[0]
|
return res[0]
|
||||||
|
finally:
|
||||||
|
cr.close()
|
||||||
|
|
||||||
users()
|
users()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue