diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index 127bfc2d5b4..00a541858cf 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -709,6 +709,9 @@ class view(osv.osv): arch = etree.tostring(root, encoding='utf-8', xml_declaration=True) return arch + def clear_cache(self): + self.read_template.clear_cache(self) + def distribute_branding(self, e, branding=None, parent_xpath='', index_map=misc.ConstantMapping(1)): if e.get('t-ignore') or e.tag == 'head': diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index 43d3706d72d..30d93a7c747 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -600,6 +600,7 @@ class users_implied(osv.osv): if groups: # delegate addition of groups to add implied groups self.write(cr, uid, [user_id], {'groups_id': groups}, context) + self.pool['ir.ui.view'].clear_cache() return user_id def write(self, cr, uid, ids, values, context=None): @@ -612,6 +613,7 @@ class users_implied(osv.osv): gs = set(concat([g.trans_implied_ids for g in user.groups_id])) vals = {'groups_id': [(4, g.id) for g in gs]} super(users_implied, self).write(cr, uid, [user.id], vals, context) + self.pool['ir.ui.view'].clear_cache() return res #----------------------------------------------------------