9 Oktober 2026

Hak akses vs record rule di Odoo: mana yang kamu butuhkan?

Dua lapis, dua pertanyaan.

Access rights (ir.model.access.csv)

Pertanyaan: grup ini boleh baca, tulis, buat, atau hapus model ini sama sekali?

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_x_user,x.user,model_x,base.group_user,1,0,0,0
access_x_mgr,x.manager,model_x,my.group_mgr,1,1,1,1

Tidak ada baris untuk suatu grup berarti tidak ada akses. File ini yang sering terlupa, makanya model baru muncul “You are not allowed to access”.

Record rule (ir.rule)

Pertanyaan: baris mana yang boleh dilihat grup ini?

<record id="rule_x_own" model="ir.rule">
    <field name="name">X: own records</field>
    <field name="model_id" ref="model_x"/>
    <field name="domain_force">[('user_id', '=', user.id)]</field>
    <field name="groups" eval="[(4, ref('base.group_user'))]"/>
</record>

Jebakan

Rule tanpa grup berlaku untuk semua orang. Rule untuk model sama dengan grup berbeda digabung OR, rule global digabung AND.

Cek

Login sebagai user tes untuk tiap role lalu buka list view. Jangan percaya cek sebagai admin, karena superuser melewati rule.

← Semua tulisan