odoo访问权限 (二. 记录规则)

记录规则

  • 经过记录规则能够灵活地设置权限。
  • 规则保存在ir.rule模型表里,须要设置关联某个模型,关联不少组,访问权限控制和domian。
  • 经过domain_force过滤出的一些记录来执行约束。

例子:经理只能删除状态为'cancel'的客户线索。注意向many2many字段添加值的写法。dom

<record  id="delete_cancelled_only"  model="ir.rule">
    <field name="name">Only cancelled leads may be deleted</field>
    <field name="model_id" ref="crm.model_crm_lead"/>
    <field name="groups" eval="[(4, ref('base.group_sale_manager'))]"/>
        <field name="perm_read" eval="0"/>
        <field name="perm_write" eval="0"/>
        <field name="perm_create" eval="0"/>
        <field name="perm_unlink" eval="1" />
    <field name="domain_force">[('state','=','cancel')]</field>
</record>

例子:只有经理能够编辑课程,若是没有经理,任何人均可以编辑code

  • security.xmlxml

    <record id="group_manager" model="res.groups">权限控制

    <field name="name">todufiledu / 管理员</field>

    </record>it

    <record id="only_responsible_can_modify" model="ir.rule">file

    <field name="name">只有经理能够编辑</field>
    <field name="model_id" ref="model_todo_file"/>
    <field name="groups" eval="[(4, ref('todufiledu.group_manager'))]"/>
    <field name="perm_read" eval="0"/>
    <field name="perm_write" eval="1"/>
    <field name="perm_create" eval="0"/>
    <field name="perm_unlink" eval="1"/>
    <field name="domain_force">
        ['|', ('responsible_id','=',False),
              ('responsible_id','=',user.id)]
    </field>

    </record>model

odoo设置员工能看本身新建的记录规则 经理能看全部记录的规则

  • 增长2个组
  • 组1 能看所有记录
  • 组2 增长只能看本身的记录

  • 增长一个经理能看全部记录的规则
  • 关联模型 res.partner
  • 规则填入 [(1,'=',1)]
  • 组加入 所有记录组

  • 增长一个员工能看本身记录的规则
  • 关联模型 res.partner
  • 规则 ['|',('user_id','=',user.id),('id','=',user.partner_id.id)]
  • 组加入 只能看本身记录组
相关文章
相关标签/搜索