summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/tests/test_new_fields.py
diff options
context:
space:
mode:
authorMartin Trigaux <mat@odoo.com>2021-02-04 14:25:07 +0000
committerMartin Trigaux <mat@odoo.com>2021-02-05 09:36:36 +0000
commit33868b4e14124800035ea99df111b35b4199ae60 (patch)
treea5760061c130d2dedcfc7d570968a03780300233 /odoo/addons/test_new_api/tests/test_new_fields.py
parentf8cecfcc95fb46b0ea1c265e18c49769cb785784 (diff)
[FIX] base: query company dependant as superuser
When retrieving company dependant values, the computed domain called search_multi method of ir.property as normal user. Since odoo/odoo@8f578637076d4b65 ir.property records are no longer readable by a normal classical user. To reproduce: Add a domain using a company_dependant field e.g. on res.partner, with purchase installed, modify the parent_id field in form view to <field name="parent_id" ... domain="[('property_purchase_currency_id','=',property_purchase_currency_id)]" /> When clicking on the parent_id with a low priviledge user, an access-right error is raised, as the user doesn't have access to ir.property records Fixes odoo/odoo#65450 closes odoo/odoo#65552 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Diffstat (limited to 'odoo/addons/test_new_api/tests/test_new_fields.py')
-rw-r--r--odoo/addons/test_new_api/tests/test_new_fields.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py
index 45a7f8a4c35..652ae349ae0 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -1374,6 +1374,12 @@ class TestFields(TransactionCaseWithUserDemo):
self.assertEqual(attribute_record.company.foo, 'DEF')
self.assertEqual(attribute_record.bar, 'DEFDEF')
+ # a low priviledge user should be able to search on company_dependent fields
+ company_record.env.user.groups_id -= self.env.ref('base.group_system')
+ self.assertFalse(company_record.env.user.has_group('base.group_system'))
+ company_records = self.env['test_new_api.company'].search([('foo', '=', 'DEF')])
+ self.assertEqual(len(company_records), 1)
+
def test_30_read(self):
""" test computed fields as returned by read(). """
discussion = self.env.ref('test_new_api.discussion_0')