[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, 'groups_id': _get_group,
'address_id': False, '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) return self._get_company(cr, uid, context=context, uid2=uid2)
company_get = tools.cache()(company_get) company_get = tools.cache()(company_get)
def write(self, cr, uid, ids, values, *args, **argv): def write(self, cr, uid, ids, values, context=None):
if (ids == [uid]): if ids == [uid]:
ok = True for key in values.keys():
for k in values.keys(): if not (key in ('view', 'password','signature','action_id', 'company_id') or key.startswith('context_')):
if k not in ('password','signature','action_id', 'context_lang', 'context_tz','company_id'): break
ok=False else:
if ok:
uid = 1 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) self.company_get.clear_cache(cr.dbname)
# Restart the cache on the company_get method # Restart the cache on the company_get method
self.pool.get('ir.model.access').call_cache_clearing_methods(cr) self.pool.get('ir.model.access').call_cache_clearing_methods(cr)