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)]
  • 組加入 只能看本身記錄組
相關文章
相關標籤/搜索