2
    <record model="ir.rule" id="stock_inventory_comp_rule">
        <field name="name">Inventory multi-company</field>
        <field name="model_id" ref="model_stock_inventory" />
        <field name="global" eval="True" />
        <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]
        </field>
    </record>

我对security.xml文件中的上述代码片段感到困惑,这意味着下面的标签。?

id="stock_inventory_comp_rule"这条线的意思以及它的标签在哪里。或者它仅用于保存和保存以通过id目的识别记录。?

<field name="name">Inventory multi-company</field>这条线的意思。这仅用于显示目的吗?

<field name="model_id" ref="model_stock_inventory" />哪一个是 model_stock_inventory 的意思,这个的用途是什么。?

<field name="global" eval="True" />为什么这个设置全局 True。?如果我们将其设置为 False,那么预期的结果是什么。?

<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])] 这里显示像域中的域过滤器。?这个标准是否设置为上述模型类?这个片段的用途是什么?

4

1 回答 1

5

ir.rule 与组一起使用,例如在销售订单中,您希望每个用户只看到自己的记录而不是其他用户销售订单,因此您在 ir.rule 中制定记录规则以阻止其他用户看到彼此的销售订单,并将此规则分配给某个组,当您将该组分配给用户时,它会自动应用此规则

例子

<record id="sale_order_user_rule" model="ir.rule">
            <field name="name">Quotations/Sale Orders</field>
            <field name="model_id" ref="sale.model_sale_order"/>
            <field name="domain_force">[('user_id','in',[user.id])]</field>
            <field name="groups" eval="[(4, ref('group_purcase_manager'))]"/>
            <field eval="1" name="perm_unlink"/>
            <field eval="1" name="perm_write"/>
            <field eval="1" name="perm_read"/>
            <field eval="1" name="perm_create"/>
        </record>

正如您在示例中看到的,我创建了一个规则来限制其他用户查看彼此的记录并将此规则分配给团购经理,您可以通过此规则限制用户访问权限,例如读取、写入、创建、删除等

就像在您的示例中一样,您制定规则以查看公司和他的孩子记录所有全球记录意味着该规则适用于所有人而不分配给任何组

于 2013-04-26T10:43:14.387 回答