Sejauh ini, kita telah mendefinisikan “otak” (Model) dan “wajah” (View). Namun, ada dua hal penting yang masih kurang:
Di sinilah file Keamanan dan file Data berperan.
ir.model.access.csvSaat 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.
ir.model.access.csvFile 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
id: ID unik untuk baris izin ini (misal: access_library_book_user).name: Nama deskriptif untuk izin ini (misal: library.book access for users).model_id:id: Nama model target, diawali model_ dan . diganti _. Contoh: model_library_book.group_id:id: Grup pengguna mana yang mendapatkan izin ini. Untuk memulai, kita bisa berikan ke semua pengguna internal (base.group_user).perm_read, perm_write, perm_create, perm_delete: Izin Baca, Tulis, Buat, dan Hapus. Isi dengan 1 untuk mengizinkan atau 0 untuk menolak.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', ],