Sejauh ini, kita telah mendefinisikan “otak” (Model) dan “wajah” (View). Namun, ada dua hal penting yang masih kurang:

  1. Izin Akses: Siapa yang boleh melihat dan mengubah data kita?
  2. Data Awal: Bagaimana cara memuat data awal yang diperlukan oleh modul kita (misalnya, kategori, atau data konfigurasi)?

Di sinilah file Keamanan dan file Data berperan.


🚪 Keamanan Dasar: ir.model.access.csv

Saat Anda membuat model dan view baru, jika Anda coba buka menunya, Anda akan disambut error “Access Denied”. Ini karena Odoo secara default melarang semuanya. Anda harus secara eksplisit memberikan izin.

Cara paling dasar untuk memberikan izin adalah melalui file security/ir.model.access.csv.

File ini adalah daftar “siapa boleh melakukan apa” pada sebuah model.

Format ir.model.access.csv

File ini memiliki format CSV (Comma-Separated Values) dengan header berikut: id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_delete

Contoh untuk Model Buku

Buat file security/ir.model.access.csv:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_delete
access_library_book_user,library.book.user,model_library_book,base.group_user,1,1,1,1

Baris ini berarti: “Berikan izin penuh (baca, tulis, buat, hapus) pada model library.book kepada semua pengguna dalam grup base.group_user (semua pengguna yang login).”

PENTING! 🚨 Daftarkan file ini di manifest.py sebelum file view manapun. Urutan pemuatan itu penting!

'data': [
    'security/ir.model.access.csv',
    'views/library_book_views.xml',
],