Skip to content

Commit

Permalink
[FIX] purchase: only search in requested model
Browse files Browse the repository at this point in the history
Because otherwise a user who has access to a view displaying
supplier_invoice_count will get an access error if he doesn't also have
access to purchase.order, even if that wouldn't have been displayed.

opw-666935
  • Loading branch information
jorenvo committed Jan 27, 2016
1 parent 43a4ffe commit 634c626
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions addons/purchase/partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,17 @@ class res_partner(osv.osv):
def _purchase_invoice_count(self, cr, uid, ids, field_name, arg, context=None):
PurchaseOrder = self.pool['purchase.order']
Invoice = self.pool['account.invoice']
return {
partner_id: {
'purchase_order_count': PurchaseOrder.search_count(cr,uid, [('partner_id', 'child_of', partner_id)], context=context),
'supplier_invoice_count': Invoice.search_count(cr,uid, [('partner_id', 'child_of', partner_id), ('type','=','in_invoice')], context=context)
}
for partner_id in ids
}
res = {}

for partner_id in ids:
res[partner_id] = {}

if 'purchase_order_count' in field_name:
res[partner_id]['purchase_order_count'] = PurchaseOrder.search_count(cr,uid, [('partner_id', 'child_of', partner_id)], context=context)
if 'supplier_invoice_count' in field_name:
res[partner_id]['supplier_invoice_count'] = Invoice.search_count(cr,uid, [('partner_id', 'child_of', partner_id), ('type','=','in_invoice')], context=context)

return res

def _commercial_fields(self, cr, uid, context=None):
return super(res_partner, self)._commercial_fields(cr, uid, context=context) + ['property_product_pricelist_purchase']
Expand Down

0 comments on commit 634c626

Please sign in to comment.