- Menambahkan pengecekan lebih rinci ketika pengguna mencoba mengakses, membuat, mengubah, atau menghapus role berdasarkan perizinan spesifik (usermanagement.read, usermanagement.create, dll.).
- Menghapus komentar kode yang tidak digunakan pada metode middleware.
- Menggunakan class Exception secara konsisten untuk penanganan error dan pengembalian pesan error di seluruh metode.
- Memperbaiki komentar dan dokumentasi kode agar lebih relevan dengan implementasi saat ini.
- Menyederhanakan dan mengoptimasi pengaturan sorting pada data roles, termasuk sorting case-insensitive.
- Menyesuaikan kunci perizinan dari 'roles.*' menjadi 'usermanagement.*' untuk kesesuaian dengan grup perizinan.
test(roles): menambah RolesControllerTest dengan cakupan pengujian mendalam
- Membuat pengujian lengkap untuk semua metode di RolesController, termasuk pengujian izin akses, proses penyimpanan, penghapusan, dan pemulihan role.
- Menambahkan pengujian untuk fitur datatables: pencarian, penyortiran, dan pengambilan data yang benar.
- Menguji validasi perizinan granular untuk membuat, mengedit, menghapus, dan memulihkan role.
- Memastikan respon API sesuai ekspektasi saat pengguna tidak memiliki izin yang dibutuhkan.
- Memastikan penghapusan lunak dan mekanisme pemulihan role berfungsi seperti yang diharapkan.
- Modifikasi form pembuatan role:
- Tambahkan class `tomselect` pada elemen dropdown posisi.
- Update label tingkat jabatan pada tampilan opsi dropdown.
- Pembaruan tabel pada halaman list role:
- Tambah kolom baru: "Position" dan "Tingkat Jabatan".
- Kolom baru dapat diurutkan.
- Update logika pencarian dan pengurutan:
- Izinkan pencarian berdasarkan nama posisi dan tingkat jabatan.
- Tambahkan pengurutan data berdasarkan nama posisi dan tingkat jabatan dengan join table `positions`.
- Perbaikan pada paginasi dan penghitungan data:
- Revisi query agar menghindari duplikasi data akibat join tabel.
- Ekspor data:
- Tambahkan informasi kolom baru "Position" dan "Tingkat Jabatan" pada file Excel hasil ekspor.
- Perbarui header dan pengaturan format kolom pada file Excel.
Perubahan ini memperluas fleksibilitas pada manajemen role dengan menambahkan dimensi posisi dan tingkat jabatan baik dalam tampilan UI maupun data backend.
- Tambahkan relasi posisi dengan menambahkan kolom `position_id` pada tabel roles melalui migrasi.
- Perbarui fungsi pada `RolesController` untuk menyertakan posisi dalam proses CRUD.
- Gunakan model `Position` untuk mendapatkan daftar posisi baik saat membuat maupun mengedit role.
- Sesuaikan nama permission dari `roles.view` ke `roles.read`, `roles.store` ke `roles.create`, dan `roles.edit` ke `roles.update` agar konsisten.
- Perbarui validasi di `RoleRequest` untuk mendukung input `position_id`.
- Tambahkan properti `position_id` ke atribut `fillable` di model Role untuk mendukung mass assignment.
- Buat fungsi relasi `position()` pada model Role untuk mereferensikan ke model Position.
- Perbarui tampilan form role (`create.blade.php`):
- Tambahkan dropdown untuk memilih posisi dalam form input.
- Tampilkan informasi level posisi bersama dengan nama posisi dalam dropdown.
- Sinkronisasi validasi dan nilai default sesuai dengan pengaturan posisi.
- Perbaikan minor pada query pencarian data roles, menggunakan `whereRaw` untuk pencarian case-insensitive.