Security record rules adalah aturan yang digunakan dalam Odoo untuk mengontrol akses pengguna terhadap data dalam model tertentu. Aturan ini memungkinkan Anda untuk menentukan aksesibilitas pengguna berdasarkan kriteria tertentu, seperti grup pengguna, bidang tertentu dalam catatan, atau aturan kompleks yang melibatkan beberapa kondisi.
Dengan menggunakan aturan rekaman keamanan, Anda dapat membatasi pengguna agar hanya dapat melihat, membuat, mengedit, atau menghapus catatan tertentu yang sesuai dengan kriteria yang Anda tetapkan. Hal ini sangat berguna untuk menjaga keamanan data dan memastikan bahwa setiap pengguna hanya dapat mengakses informasi yang relevan dengan peran atau tanggung jawab mereka dalam organisasi. Ada beberapa tahapan yang harus dibuat sebelum membuat record rule. berikut ini tahapan-tahapannya:
1. Buat file security.xml pada folder security.
2. Kita akan membuat group kategori, masukan kode seperti dibawah ini:
*<!-- Category Group-->*
<record id="module_categori_absen_ts" model="ir.module.category">
<field name="name">Absen TS</field>
<field name="description">Categori For Absen TS</field>
</record>
3. Setelah itu kita akan membuat group access dari kategori diatas:
*<!-- Group Data -->*
<record id="group_attendance_Staff" model="res.groups">
<field name="name">Absen TS/Staff</field>
<field name="category_id" ref="module_categori_absen_ts"/>
</record>
[/çode]
Perlu diingat bahwa **ref** yang ada didalam tag **<field>** harus terhubung dengan **id** record category group.
4\. Setelah itu kita bisa membuat record rule. seperti dibawah ini:
[code]
*<!-- Record Rule -->*
<record id="record_rule_staff" model="ir.rule">
<field name="name">Staff TS</field>
<field name="model_id" ref="model_absen_ts_ts_attendance"/>
<field name="groups" eval="[(4, ref('group_attendance_Staff'))]"/>
<field name="domain_force">[('employee_id.user_id','=',uid)]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
<field name="perm_create" eval="False"/>
<field name="perm_unlink" eval="False"/>
<field name="active" eval="True"/>
</record>
Dari code diatas yang perlu diperhatikan adalah :
+ <field name="groups" eval="[(4, ref('group_attendance_Staff'))]"/> kode ini akan menghubungkan record rule dengan group yang akan diterapkan.
+ <field name="domain_force">[('employee_id.userid','=',uid)]</field> kode ini akan menghubungkan record rengan rule yang dimasukan didalamnya; misalkan dalam kasus ini akan data yang tampil berdasarkan employeeid.user_id dengan akun yang login.
+ <field name="active" eval="True"/> kode ini akan mengatifkan record rule agar dapat dilihat pada saat debug mode.
+ <field name="perm_read" eval="True"/> kode ini akan mengizinkan user untuk bisa melihat data tersebut. Nilai yang bisa dimasukan hanya dua yaitu "True" dan "False"
+ <field name="perm_write" eval="False"/> kode ini akan mengizinkan user untuk bisa mengubah data tersebut.. Nilai yang bisa dimasukan hanya dua yaitu "True" dan "False"
+ <field name="perm_create" eval="False"/> kode ini akan mengizinkan user untuk bisa membuat data tersebut.. Nilai yang bisa dimasukan hanya dua yaitu "True" dan "False"
+ <field name="perm_unlink" eval="False"/> kode ini akan mengizinkan user untuk bisa menghapus data tersebut.. Nilai yang bisa dimasukan hanya dua yaitu "True" dan "False"
Selamat Mencoba, Terimah Kasih … !! :👍