From 101c27faa4deb4772857d45dbc3af71cd5eed5f0 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Fri, 28 Sep 2012 10:18:05 +0200 Subject: [PATCH] [FIX] access rights issues on partners bzr revid: fp@tinyerp.com-20120928081805-jifrsqvktvm5vfch --- addons/crm/res_partner.py | 16 ++++++++++------ addons/purchase/partner.py | 10 +++++++--- addons/sale/res_partner.py | 10 +++++++--- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/addons/crm/res_partner.py b/addons/crm/res_partner.py index 55cc0c95b2c..e43534476fd 100644 --- a/addons/crm/res_partner.py +++ b/addons/crm/res_partner.py @@ -26,12 +26,16 @@ class res_partner(osv.osv): _inherit = 'res.partner' def _opportunity_meeting_count(self, cr, uid, ids, field_name, arg, context=None): - res = {} - for partner in self.browse(cr, uid, ids, context): - res[partner.id] = { - 'opportunity_count': len(partner.opportunity_ids), - 'meeting_count': len(partner.meeting_ids), - } + res = dict(map(lambda x: (x,{'opportunity_count': 0, 'meeting_count': 0}), ids)) + # the user may not have access rights for opportunities or meetings + try: + for partner in self.browse(cr, uid, ids, context): + res[partner.id] = { + 'opportunity_count': len(partner.opportunity_ids), + 'meeting_count': len(partner.meeting_ids), + } + except: + pass return res _columns = { diff --git a/addons/purchase/partner.py b/addons/purchase/partner.py index 2edcf5ec0d8..6649ebfea9d 100644 --- a/addons/purchase/partner.py +++ b/addons/purchase/partner.py @@ -26,9 +26,13 @@ class res_partner(osv.osv): _inherit = 'res.partner' def _purchase_order_count(self, cr, uid, ids, field_name, arg, context=None): - res = {} - for partner in self.browse(cr, uid, ids, context=context): - res[partner.id] = len(partner.purchase_order_ids) + res = dict(map(lambda x: (x,0), ids)) + # this user may not have access to user rights + try: + for partner in self.browse(cr, uid, ids, context=context): + res[partner.id] = len(partner.purchase_order_ids) + except: + pass return res def copy(self, cr, uid, id, default=None, context=None): diff --git a/addons/sale/res_partner.py b/addons/sale/res_partner.py index d7bcd5804ee..5e8d05b62c1 100644 --- a/addons/sale/res_partner.py +++ b/addons/sale/res_partner.py @@ -26,9 +26,13 @@ class res_partner(osv.osv): _inherit = 'res.partner' def _sale_order_count(self, cr, uid, ids, field_name, arg, context=None): - res = {} - for partner in self.browse(cr, uid, ids, context): - res[partner.id] = len(partner.sale_order_ids) + res = dict(map(lambda x: (x,0), ids)) + # The current user may not have access rights for sale orders + try: + for partner in self.browse(cr, uid, ids, context): + res[partner.id] = len(partner.sale_order_ids) + except: + pass return res def copy(self, cr, uid, record_id, default=None, context=None):