Restrict Contact Visibility by Company in Odoo 18
1/. Create User Group
Go to: Settings > Users & Companies > Groups
(or create a new group, e.g. "Strict Company Contacts Only")
Add the users in the "Users" tab.
2/. Add Security Record Rule for res.partner
Go to Settings > Technical > Security > Record Rules, and update or create a new rule for the res.partner model.
-
Rule Name:
Multi-Company Contact Restriction -
Model:
Contact (res.partner) -
Domain Filter:
[('company_id', '=', user.company_id.id)] -
Group Name: Select the group we just created in step 1. ( e.g. "Strict Company Contacts Only")
-
3/. Create New Automated Action:
-
Name:
Assign Company on Contact Creation -
Model:
Contact(res.partner) -
Trigger:
On UI Change -
When updating:
name -
python code:
if not record.company_id:
record.write({'company_id': user.company_id.id})