[IMP] sale_project: fix the SO access error even user has correct sales rights
Before this commit, When user has sale order all docuements right, project user right and try to open a sale order linked with private project then it raises an access rights error when a user clicks on sales orders in a project, even though the user has the correct rights due to invalid access on project_ids field also only project manager was able to see the project stat button on sale order. so in this commit, make the project stat button visible to project user and fix the access error on private project for project user. task-2792884 closes odoo/odoo#91167 X-original-commit: f4e371a4b0903cea92c947b3afc36deee05237da Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
This commit is contained in:
committed by
Barad Mahendra
parent
bef18ef86e
commit
61569e9bf7
@@ -35,10 +35,13 @@ class SaleOrder(models.Model):
|
||||
|
||||
@api.depends('order_line.product_id', 'order_line.project_id')
|
||||
def _compute_project_ids(self):
|
||||
is_project_manager = self.user_has_groups('project.group_project_manager')
|
||||
for order in self:
|
||||
projects = order.order_line.mapped('product_id.project_id')
|
||||
projects |= order.order_line.mapped('project_id')
|
||||
projects |= order.project_id
|
||||
if not is_project_manager:
|
||||
projects = projects._filter_access_rules('read')
|
||||
order.project_ids = projects
|
||||
order.project_count = len(projects)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<field name="priority">10</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='action_view_invoice']" position="before">
|
||||
<button type="object" name="action_view_project_ids" class="oe_stat_button" icon="fa-puzzle-piece" attrs="{'invisible': ['|', ('state', 'in', ['draft', 'sent']), ('project_ids', '=', [])]}" groups="project.group_project_manager">
|
||||
<button type="object" name="action_view_project_ids" class="oe_stat_button" icon="fa-puzzle-piece" attrs="{'invisible': ['|', ('state', 'in', ['draft', 'sent']), ('project_ids', '=', [])]}" groups="project.group_project_user">
|
||||
<field name="project_ids" invisible="1"/>
|
||||
<field name="project_count" widget="statinfo" string="Projects"/>
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user