当前位置: 首页 > 資訊 >

Day14 Let's ODOO: Security(3) Record rules

如果說Access right是針對model的CURD,那麼Record rules就是針對每筆資料去設定權限,例如我們不想讓志工層級的人看到休學學生的資料,即使他擁有讀的權限,透過domain,我們便可以設定規則,依照慣例我們來寫一個範例:

<record model="ir.rule" id="volunteer_rule">
    <field name="name">Volunteer Rule</field>
    <field name="model_id" ref="model_res_student"/>
    <field name="domain_force">[('is_active', '=', True)]</field>
    <field name="groups" eval="[(4, ref('group_school_volunteer'))]"/> 
    <field name="perm_read" eval="True"/>
    <field name="perm_create" eval="False"/>
    <field name="perm_unlink" eval="False"/>
    <field name="perm_write" eval="False"/>
</record>

model:固定是ir.rule

id:規則id,不重複即可

name:規則名稱,自定義即可

model_id:關聯之model,同之前設定access right,規則為 "model_"+ Model Name

domain_force:對model內資料的過濾條件,我們只希望還在學的學生出現在志工觀看名單上,另外可以用'|'或"&"去過濾複數條件

groups:此規則套用的group,這裡填入我們昨天設定的志工group id

perm_read:讀取資料權限

perm_create:建立資料權限

perm_unlink:刪除資料權限

perm_write:修改資料權限

注意CURD權限必須至少有一個是True,不能以全否定的方式設定權限

設定好後重啟,我們便會看到新增的Record rules,同樣的記得開啟開發者模式:

https://ithelp.ithome.com.tw/upload/images/20210930/20130896EdKsGFkxfw.png

如果覺得寫設定檔很麻煩,過去提到的Security的設定都有介面可以新增或修改,也很方便,只要定義的完善Odoo的權限可以設定的越來越細!!

Security的介紹就到這邊了,我們明天來新增Menu icon