From 62355b6ad3e2af16efabe1c3ca2fb053a6084bc1 Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Wed, 8 Jul 2020 13:26:27 +0000 Subject: [FIX] test_new_api: Fix bad shared cache usage for stored computed fields Purpose ======= Since the 13.0, a regression has been introduced in hr_timesheet. Considering: - The account.analytic.line model, representing a timesheet entry - The project.task model, representing a task, on which we have the fields: - timesheet_ids: One2many - planned_hours: Computed (sudo), stored, representing the sum of the timesheet amounts - An ir.rule restricting the timesheets CRUD to his own only. A user can only see its own timesheets on a task, but the field "Planned Hours", which is stored-compute_sudo, should take all the timesheet lines into account However, when adding a new line and then recomputing the value, no existing line from another user is binded on self, then the value is erased and saved on the database. Specification ============= This commit introduces a test that illustrates that bad usage of a shared cache. A correct way to fix this could be to avoid using the cache if an ir.rule is pointing to the related model. That would force the recomputation in a real sudoed environment. closes odoo/odoo#55408 Taskid: 2285924 X-original-commit: 50e229fe66b2a82717d4260287e18a875bbd26f5 Signed-off-by: Yannick Tivisse (yti) --- odoo/addons/test_new_api/security/test_new_api_security.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 odoo/addons/test_new_api/security/test_new_api_security.xml (limited to 'odoo/addons/test_new_api/security/test_new_api_security.xml') diff --git a/odoo/addons/test_new_api/security/test_new_api_security.xml b/odoo/addons/test_new_api/security/test_new_api_security.xml new file mode 100644 index 00000000000..56f591b9374 --- /dev/null +++ b/odoo/addons/test_new_api/security/test_new_api_security.xml @@ -0,0 +1,11 @@ + + + + + model_shared_cache_compute_line: See own lines + + [('user_id', '=', user.id)] + + + + -- cgit v1.2.3