From 95c16f35ce671899caaa7ef1677318a71a3bcba7 Mon Sep 17 00:00:00 2001 From: Thibault Libioulle Date: Mon, 25 Oct 2021 13:10:41 +0000 Subject: [PATCH] [FIX] project*: fix groups on computed field *: account_sale_timesheet, project_hr_expense, project_mrp, project_purchase, sale_project_account This commit fixes issue regarding fields in project form stat buttons. Those fields are evaluated in any cases, and should rather be computed only when the user has the right group. Steps to reproduce : 1) Install project with one of this bridge 2) Connect with a user with only the group_project_admin right 3) Go to the form view 4) Issue: An internal user with the group "Project Administrator" is unable to access the form view of a project because of missing rights on the X model. Desired Behavior ================ The stat button should not be shown and the field not computed. opw-2675514 closes odoo/odoo#78981 X-original-commit: 981bbf59d624c3a7bd22d6d7bf26c09e14835862 Related: odoo/enterprise#21889 Signed-off-by: Laurent Stukkens (ltu) --- addons/account_sale_timesheet/models/project.py | 2 +- addons/project_hr_expense/models/project.py | 2 +- addons/project_mrp/models/project.py | 6 +++--- addons/project_purchase/models/project.py | 2 +- addons/sale_project_account/models/project.py | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/account_sale_timesheet/models/project.py b/addons/account_sale_timesheet/models/project.py index c07110e7f63..dbd50639865 100644 --- a/addons/account_sale_timesheet/models/project.py +++ b/addons/account_sale_timesheet/models/project.py @@ -6,7 +6,7 @@ from odoo import fields, models, _ class Project(models.Model): _inherit = 'project.project' - invoice_count = fields.Integer(related='analytic_account_id.invoice_count') + invoice_count = fields.Integer(related='analytic_account_id.invoice_count', groups='account.group_account_readonly') # ---------------------------- # Project Updates diff --git a/addons/project_hr_expense/models/project.py b/addons/project_hr_expense/models/project.py index a96b88f02ec..1bc6c4b70c7 100644 --- a/addons/project_hr_expense/models/project.py +++ b/addons/project_hr_expense/models/project.py @@ -6,7 +6,7 @@ from odoo import api, fields, models, _ class Project(models.Model): _inherit = 'project.project' - expenses_count = fields.Integer('# Expenses', compute='_compute_expenses_count') + expenses_count = fields.Integer('# Expenses', compute='_compute_expenses_count', groups='hr_expense.group_hr_expense_team_approver') @api.depends('analytic_account_id') def _compute_expenses_count(self): diff --git a/addons/project_mrp/models/project.py b/addons/project_mrp/models/project.py index 6f56f157c0c..6f874ad4541 100644 --- a/addons/project_mrp/models/project.py +++ b/addons/project_mrp/models/project.py @@ -7,9 +7,9 @@ from odoo import fields, models, _ class Project(models.Model): _inherit = "project.project" - production_count = fields.Integer(related="analytic_account_id.production_count") - workorder_count = fields.Integer(related="analytic_account_id.workorder_count") - bom_count = fields.Integer(related="analytic_account_id.bom_count") + production_count = fields.Integer(related="analytic_account_id.production_count", groups='mrp.group_mrp_user') + workorder_count = fields.Integer(related="analytic_account_id.workorder_count", groups='mrp.group_mrp_user') + bom_count = fields.Integer(related="analytic_account_id.bom_count", groups='mrp.group_mrp_user') def action_view_mrp_production(self): self.ensure_one() diff --git a/addons/project_purchase/models/project.py b/addons/project_purchase/models/project.py index 1ae99499007..cfd46822d89 100644 --- a/addons/project_purchase/models/project.py +++ b/addons/project_purchase/models/project.py @@ -7,7 +7,7 @@ from odoo import api, fields, models, _ class Project(models.Model): _inherit = "project.project" - purchase_orders_count = fields.Integer('# Purchase Orders', compute='_compute_purchase_orders_count') + purchase_orders_count = fields.Integer('# Purchase Orders', compute='_compute_purchase_orders_count', groups='purchase.group_purchase_user') @api.depends('analytic_account_id') def _compute_purchase_orders_count(self): diff --git a/addons/sale_project_account/models/project.py b/addons/sale_project_account/models/project.py index ac25b813fac..49d5a90d18a 100644 --- a/addons/sale_project_account/models/project.py +++ b/addons/sale_project_account/models/project.py @@ -6,7 +6,7 @@ from odoo import fields, models, _ class Project(models.Model): _inherit = 'project.project' - vendor_bill_count = fields.Integer(related='analytic_account_id.vendor_bill_count') + vendor_bill_count = fields.Integer(related='analytic_account_id.vendor_bill_count', groups='account.group_account_readonly') # ---------------------------- # Actions