[FIX] Rewrite the res.user#write method to allow to change the values

from the preferences windows of the clients.

bzr revid: stephane@openerp.com-20100604114055-t2qia9fjmmkyfwg8
This commit is contained in:
Stephane Wirtel 2010-06-04 13:40:55 +02:00
parent 7172fcf92d
commit fb7fd36362
1 changed files with 8 additions and 9 deletions

View File

@ -332,19 +332,18 @@ class users(osv.osv):
'groups_id': _get_group,
'address_id': False,
}
def company_get(self, cr, uid, uid2, context={}):
def company_get(self, cr, uid, uid2, context=None):
return self._get_company(cr, uid, context=context, uid2=uid2)
company_get = tools.cache()(company_get)
def write(self, cr, uid, ids, values, *args, **argv):
if (ids == [uid]):
ok = True
for k in values.keys():
if k not in ('password','signature','action_id', 'context_lang', 'context_tz','company_id'):
ok=False
if ok:
def write(self, cr, uid, ids, values, context=None):
if ids == [uid]:
for key in values.keys():
if not (key in ('view', 'password','signature','action_id', 'company_id') or key.startswith('context_')):
break
else:
uid = 1
res = super(users, self).write(cr, uid, ids, values, *args, **argv)
res = super(users, self).write(cr, uid, ids, values, context=context)
self.company_get.clear_cache(cr.dbname)
# Restart the cache on the company_get method
self.pool.get('ir.model.access').call_cache_clearing_methods(cr)