Skip to content
Snippets Groups Projects
Commit 2031e5e9 authored by Benoit Socias's avatar Benoit Socias
Browse files

[FIX] website: get the name of the visitor through the related field

Since [1] if the partner related to a visitor belongs to a company that
cannot be accessed by the current user, an error is raised when trying
to display the list of visitors.

This commit makes the name obtained through an additional sudo on the
`partner_id` record which might not be accessible to the current user.
This is equivalent to using the `name` field of visitor, except that
accessing the `partner_id` field will fail if `website.visitor` itself
cannot be accessed.

Steps to reproduce:
- Go to Settings / Companies
- Create a second company
- Go to Website / Reporting / Visitors
- Select "Edwin Hansen"
- Navigate to its linked partner in the contact field
"Gemini Furniture, Edwin Hansen"
- Navigate to its company "Gemini Furniture"
- In the "Sales & Purchase" tab, assign the second company as the
Company
- Save (this creates an error - but it is saved)
- Go to Website / Reporting / Visitors

=> The page was not displayed and an access error message was
displayed.

[1]: https://github.com/odoo/odoo/commit/d348bed1ad9d3d16b295f013f015706be6c07820



opw-3462104

closes odoo/odoo#133553

Signed-off-by: default avatarRomain Derie (rde) <rde@odoo.com>
parent a4349a03
No related branches found
No related tags found
No related merge requests found
......@@ -87,9 +87,11 @@ class WebsiteVisitor(models.Model):
def name_get(self):
res = []
for record in self:
# Accessing name of partner through sudo to avoid infringing
# record rule if partner belongs to another company.
res.append((
record.id,
record.partner_id.name or _('Website Visitor #%s', record.id)
record.partner_id.sudo().name or _('Website Visitor #%s', record.id)
))
return res
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment