Halo Mas Fahmi!
Wah, saya paham betul kok rasa pusingnya mengatur hak akses di Odoo, apalagi kalau usernya banyak dan kebutuhannya super spesifik per divisi. Ini memang salah satu tantangan tersendiri dalam implementasi ERP, tapi tenang saja, Odoo 11 punya tools yang cukup kuat untuk ini.
Mas Fahmi sudah benar banget arahnya di menu 'User & Companies' > 'Users' dan eksplorasi 'Access Rights' di tab 'Applications'. Itu adalah pintu masuk utamanya. Nah, biar lebih granular dan optimal, ada beberapa trik atau
best practice yang bisa kita terapkan:
1. Pahami Konsep Group (Grup) dan Hak Akses per Aplikasi
Di Odoo, hak akses itu diatur berdasarkan
Group, bukan per individu secara langsung. Ketika kita memberikan hak akses di tab 'Applications' pada detail user, sebenarnya kita sedang menambahkan user tersebut ke group-group yang sudah ada di Odoo.
Contoh: Ketika Mas memberikan hak akses 'Sales / User: All Documents', artinya user tersebut masuk ke group 'Sales / User: All Documents'. Semua hak akses (lihat, buat, edit, hapus) yang didefinisikan di group tersebut akan berlaku untuk user ini.
2. Prinsip "Least Privilege" (Hak Akses Minimal)
Ini adalah pondasi paling penting: selalu berikan hak akses seminimal mungkin yang diperlukan untuk user bisa bekerja. Mulai dari yang paling sedikit, lalu tambahkan sedikit demi sedikit jika memang ada kebutuhan. Ini ampuh untuk mencegah "permission creep" dan meminimalkan risiko keamanan.
3. Manfaatkan Group Standar Odoo
Odoo 11 sudah menyediakan banyak group standar yang cukup powerful dan bisa jadi titik awal yang bagus, contohnya:
- Sales:
- User: Own Documents Only (hanya bisa melihat dan mengelola dokumen yang dia buat sendiri atau terkait dengannya).
- User: All Documents (bisa melihat dan mengelola semua dokumen penjualan).
- Administrator (akses penuh ke modul penjualan).
- Purchase:
- User (bisa membuat PO, konfirmasi, dll).
- Manager (memiliki akses lebih, termasuk validasi).
- Invoicing (Billling):
- User: See Own Documents (hanya bisa melihat invoice yang dibuat dari sales/purchasenya sendiri).
- User: All Documents (bisa melihat semua invoice).
- Accountant (punya akses penuh untuk urusan invoice, jurnal, dll).
Untuk kasus sales admin yang cuma bisa create sales order dan view invoice tapi tidak bisa validate invoice atau akses akuntansi:
Coba berikan group
Sales / User: All Documents. Untuk invoice, pastikan user
TIDAK diberi group
Invoicing / Accountant atau
Accounting / Adviser. Mungkin cukup dengan
Invoicing / User: See Own Documents jika mereka hanya perlu melihat invoice yang berasal dari sales order yang mereka kelola. Secara default, group Sales User tidak akan bisa memvalidasi invoice. Dan pastikan
TIDAK ADA group dari modul 'Accounting' yang diberikan sama sekali.
4. Kustomisasi Hak Akses Lebih Granular dengan Record Rules (Aturan Rekaman)
Ini dia senjata ampuh untuk skenario super spesifik per divisi, Mas Fahmi! Jika group standar Odoo belum cukup, kita bisa membuat
Record Rules atau bahkan group kustom.
Record Rules memungkinkan kita mengatur hak akses pada
level baris data (row-level security). Jadi, user bisa saja punya akses ke model 'Sales Order', tapi record rule bisa membatasi hanya sales order yang memenuhi kriteria tertentu (misalnya, hanya yang berstatus 'draft', atau hanya yang dibuat oleh tim penjualan tertentu) yang bisa dia lihat/edit.
Bagaimana membuat Record Rule:
Untuk bisa mengakses menu ini, Mas Fahmi perlu mengaktifkan
Developer Mode atau
Technical Features dulu. Caranya:
Pergi ke `Settings` (atau `Administrasi`), scroll ke paling bawah di sidebar kiri, klik 'Activate the developer mode'.
Setelah Developer Mode aktif:
- Masuk ke menu `Settings` > `Users & Companies` > `Groups`.
- Pilih group yang ingin Mas Fahmi modifikasi (misalnya, buat group baru bernama 'Sales Admin Kustom' atau modifikasi 'Sales / User: All Documents' jika memang hanya untuk satu group saja).
- Di dalam detail group, akan ada tab bernama Rules atau Record Rules. Klik 'Add a line'.
- Pilih Model (misalnya 'Sales Order'), lalu tentukan kriteria (domain) yang Mas Fahmi inginkan.
Contoh Penerapan Record Rule:
- "User hanya bisa melihat sales order dengan status 'draft' atau 'sent' saja, tidak bisa yang 'confirmed' atau 'done'":
Buat Record Rule untuk model `Sales Order`.
Domainnya bisa seperti ini: `['|', ('state', '=', 'draft'), ('state', '=', 'sent')]`
Pastikan centang hak akses 'Read' saja jika hanya boleh melihat.
- "Sales Admin hanya bisa melihat invoice yang dibuat oleh Sales Person di timnya sendiri":
Ini lebih kompleks dan biasanya melibatkan relasi antara Sales Person, Sale Team, dan Invoice. Bisa dibuat Record Rule di model `Account Invoice` dengan domain yang menghubungkan user dengan tim penjualannya.
Dengan Record Rules, Mas Fahmi bisa membuat batasan yang sangat spesifik tanpa harus membuat group yang terlalu banyak dan rumit.
5. Pastikan User Tidak Memiliki Hak Akses 'Technical Features'
Hak akses
Technical Features (bisa ditemukan di group `Settings / Technical Features`) memberikan user kemampuan untuk mengubah konfigurasi teknis yang mendalam di Odoo, termasuk membuat/mengedit Record Rules, melihat model, dan lain-lain. Pastikan hanya tim IT atau developer yang memiliki hak ini. User biasa (termasuk sales admin, purchasing user)
TIDAK PERLU hak akses ini.
6. Uji Coba Secara Berkala
Setelah melakukan perubahan hak akses, selalu
login sebagai user yang bersangkutan atau gunakan akun tes dengan hak akses yang sama. Coba semua skenario yang Mas Fahmi bayangkan untuk memastikan:
- User bisa melakukan apa yang seharusnya.
- User TIDAK bisa melakukan apa yang seharusnya dilarang.
Tips Tambahan:
- Dokumentasikan Konfigurasi: Buat catatan sederhana mengenai group apa saja yang diberikan ke role user tertentu dan kenapa. Ini akan sangat membantu jika di kemudian hari ada perubahan atau user baru.
- Hindari Memberi Terlalu Banyak Group: Semakin banyak group yang diberikan ke user, semakin kompleks dan berpotensi tumpang tindih hak aksesnya. Cobalah untuk menggabungkan fungsi dalam satu group kustom jika memang kebutuhannya mirip.
Memang butuh sedikit kesabaran dan eksperimen untuk menemukan konfigurasi yang paling pas, Mas Fahmi. Tapi dengan pendekatan di atas, saya yakin Mas Fahmi bisa merapikan hak akses di Odoo 11 perusahaan.
Semangat terus ya! Kalau ada kendala atau butuh detail lebih lanjut, jangan sungkan bertanya lagi.