From 0131fb844f45417dfc929e76a88c7a27d14f6f2c Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 31 Oct 2008 21:44:01 +0100 Subject: [PATCH] bugfixes bzr revid: fp@tinyerp.com-20081031204401-ygteigbmtok58vql --- bin/addons/base/ir/ir_model.py | 4 ++-- bin/addons/base/ir/ir_ui_menu.py | 9 +++++--- bin/addons/base/res/partner/partner_view.xml | 3 ++- bin/addons/base/res/res_user.py | 1 + bin/addons/base/security/ir.model.access.csv | 24 ++++++++++---------- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/bin/addons/base/ir/ir_model.py b/bin/addons/base/ir/ir_model.py index 85dafc71d96..d48e480f931 100644 --- a/bin/addons/base/ir/ir_model.py +++ b/bin/addons/base/ir/ir_model.py @@ -182,8 +182,8 @@ class ir_model_grid(osv.osv): cols = ['model', 'name'] xml = ''' <%s editable="bottom"> - - + + ''' % (view_type,) for group in groups_br: diff --git a/bin/addons/base/ir/ir_ui_menu.py b/bin/addons/base/ir/ir_ui_menu.py index b8cf09b9fb4..71e50d141a6 100644 --- a/bin/addons/base/ir/ir_ui_menu.py +++ b/bin/addons/base/ir/ir_ui_menu.py @@ -87,7 +87,7 @@ class ir_ui_menu(osv.osv): return [] modelaccess = self.pool.get('ir.model.access') - user_groups = set(self.pool.get('res.users').read(cr, 1, uid)['groups_id']) + user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) result = [] for menu in self.browse(cr, uid, ids): # this key works because user access rights are all based on user's groups (cfr ir_model_access.check) @@ -103,8 +103,11 @@ class ir_ui_menu(osv.osv): restrict_to_groups = [g.id for g in menu.groups_id] if not user_groups.intersection(restrict_to_groups): continue + result.append(menu.id) + self._cache[key] = True + continue - if menu.action: # FIXME elif ? + if menu.action: # we check if the user has access to the action of the menu m, oid = menu.action.split(',', 1) data = self.pool.get(m).browse(cr, 1, int(oid)) @@ -127,8 +130,8 @@ class ir_ui_menu(osv.osv): # not displayed if there is no children continue - self._cache[key] = True result.append(menu.id) + self._cache[key] = True if count: return len(result) diff --git a/bin/addons/base/res/partner/partner_view.xml b/bin/addons/base/res/partner/partner_view.xml index 9bcb9333049..20415833f67 100644 --- a/bin/addons/base/res/partner/partner_view.xml +++ b/bin/addons/base/res/partner/partner_view.xml @@ -3,7 +3,8 @@ - +