Odoo 15中如何为特定用户组隐藏指定记录?
解决方案:为特定用户组创建记录规则限制客户查看
你可以通过创建一条非全局记录规则并关联到Hide Customers组,实现对客户类联系人的查看限制。Odoo的记录规则默认会以AND逻辑叠加所有适用规则,因此这条规则会和用户所属其他组的规则共同生效,强制过滤掉客户类联系人。
记录规则XML代码
在你的模块中添加以下XML代码:
<record id="rule_hide_customers" model="ir.rule"> <field name="name">Hide Customers - Restrict View</field> <field name="model_id" ref="base.model_res_partner"/> <field name="groups" eval="[(4, ref('group_hide_customers'))]"/> <field name="domain_force">[('customer', '=', False)]</field> <field name="perm_read" eval="True"/> <field name="perm_write" eval="False"/> <!-- 如需限制编辑可改为True --> <field name="perm_create" eval="False"/> <!-- 如需限制创建可改为True --> <field name="perm_unlink" eval="False"/> <!-- 如需限制删除可改为True --> <field name="global" eval="False"/> <!-- 非全局规则,仅对指定组生效 --> </record>
关键说明
- 规则逻辑:
domain_force设置为[('customer', '=', False)],仅允许用户查看非客户类联系人。 - 叠加机制:Odoo会将该用户所有组对应的记录规则用
AND逻辑组合,因此即使用户属于base.group_partner_manager(拥有查看所有联系人的权限),这条限制规则会叠加生效,阻止用户查看客户类记录。 - 权限控制:根据需求调整
perm_read/perm_write等字段,perm_read=True是核心限制项;其他权限可按需启用限制。
内容的提问来源于stack exchange,提问作者forvas
相关产品推荐
相关产品推荐

