如何通过 create_uid 限制对合作伙伴的访问

How to restrict access to partners by create_uid

我需要将用户访问权限限制为仅限他自己添加的合作伙伴。 这就是我所做的: security.xml 我的模块:

<odoo>
  <data noupdate="1">
    <record model="ir.rule" id="partner_access_user_rule">
      <field name="name">Parners only for editors</field>
      <field name="model_id" ref="base.model_res_partner"/>
      <field name="domain_force"> [('create_uid','=',user.id)] </field>
      <field name="groups" eval="[(4,ref('base.group_user'))]"/>
    </record>
  </data>
</odoo>

Update 我已经按照 Lucas 的指示更改了 ref="base.model_res_partner",并且我的模块已经安装,但是规则没有在设置 > 安全>"record rules" 并没有申请。我已经通过网络界面添加了记录规则并且它有效。我如何导出它以应用于我的模块?我添加到问题中的记录规则设置。

导出文件:

id,"perm_create","perm_unlink","perm_read","perm_write","domain_force","groups/id","name","model_id/id"
__export__.ir_rule_97,"True","True","True","True","[('create_uid','=',user.id)]","base.group_user","Partners only for editors","account.model_res_partner"

您的代码正在 mail.partner.access 上寻找模型 res.partner,而它应该在 base.

上寻找

尝试以下操作:

<field name="model_id" ref="base.model_res_partner"/>

如果您的行级访问规则不起作用,请使用 Odoo 界面创建并测试它,将其导出到 csv 并更改您的原始 XML。或者直接从 CSV 创建 xml(查看附图)。就我而言,我发现了错误:model_id 应该指的是 base.model_res_partner