diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index ac6ba52bf38..9ccfee29a38 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -279,6 +279,14 @@ class res_users(osv.osv): return result + def create(self, cr, uid, vals, context=None): + user_id = super(res_users, self).create(cr, uid, vals, context=context) + #User->Partner Company has to be Same as User Company, instaed logged in users. + user = self.read(cr, uid, user_id, ['partner_id', 'company_id'], context=context) + company_id = self._get_company( cr, uid, context=context, uid2=user['id']) + self.pool.get('res.partner').write(cr,uid, user['partner_id'][0], {'company_id':company_id}) + return user_id + def write(self, cr, uid, ids, values, context=None): if not hasattr(ids, '__iter__'): ids = [ids] @@ -293,6 +301,12 @@ class res_users(osv.osv): uid = 1 # safe fields only, so we write as super-user to bypass access rights res = super(res_users, self).write(cr, uid, ids, values, context=context) + #User->Partner Company has to be Same as User Company, instaed logged in users. + if 'company_id' in values: + partner_pool = self.pool.get('res.partner') + for user in self.read(cr, uid, ids, ['partner_id', 'company_id'], context=context): + company_id = self._get_company( cr, uid, context=context, uid2=user['id']) + partner_pool.write(cr,uid, user['partner_id'][0], {'company_id':company_id}) # clear caches linked to the users self.pool.get('ir.model.access').call_cache_clearing_methods(cr)