- Memperbarui UsersController:
- Mengaktifkan middleware untuk menginisialisasi pengguna yang terautentikasi.
- Mengubah nama izin dari pola 'users.*' menjadi 'usermanagement.*' untuk konsistensi.
- Menggunakan Storage Facade untuk operasi penyimpanan file tanda tangan.
- Menambahkan validasi untuk direktori sebelum menyimpan file baru.
- Mengubah metode untuk memberikan respons JSON pada penghapusan pengguna.
- Memperbarui views/users/index.blade.php:
- Menghapus dropdown filter yang tidak digunakan.
- Menambahkan tombol Export to Excel dan Add User dengan styling yang diperbarui.
- Menambahkan file `UsersControllerTest` untuk memastikan kelengkapan pengujian:
- Pengujian CRUD (Create, Read, Update, Delete) pengguna.
- Pengujian pagination, sorting, dan filtering untuk datatable.
- Pengujian pengelolaan file tanda tangan pengguna (penyimpanan baru dan penghapusan tanda tangan lama).
- Pengujian pemulihan untuk soft-deleted users.
- Pengujian validasi peran dan izin untuk setiap tindakan.
- Memastikan konsistensi dan reliabilitas proses pengelolaan pengguna melalui pengujian otomatis.
- Mengubah logika akses `PermissionsController` dengan:
- Menambahkan konstruktor untuk mendefinisikan user yang terautentikasi.
- Mengganti logika permission check dari `permissions.*` ke `usermanagement.*`.
- Menambahkan validasi `abort` untuk operasi CRUD jika user tidak memiliki hak akses.
- Memperbarui respons penghapusan permission menjadi JSON yang lebih semantik.
- Memperbarui `PermissionGroup` untuk:
- Menambahkan mekanisme auto-generated slug saat membuat instance baru.
- Memperbaiki export logic pada `PermissionExport` dengan:
- Mengonversi array `roles` ke collection sebelum menggunakan fungsi `pluck`.
- Menambahkan soft delete pada model `Permission`, memungkinkan penghapusan data non-permanen.
- Menghapus elemen filter dropdown di view `permissions.index` untuk meningkatkan clarity UI.
- Menambahkan comprehensive test suite pada `PermissionsControllerTest` untuk:
- Menguji validasi CRUD pada permission dengan role dan tanpa role.
- Menguji restore permissions yang terhapus.
- Menguji filter, pencarian, dan sorting pada datatables.
- Menguji export permissions.
Perubahan ini meningkatkan pengelolaan permission, validasi akses, dan memperkaya pengujian untuk memastikan kualitas fitur permission management.
- 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.
- Menghapus konstruktor PositionsController untuk middleware autentikasi yang tidak digunakan.
- Mengganti izin `positions.*` menjadi `usermanagement.*` di semua fungsi untuk konsistensi otorisasi.
- Menambahkan validasi untuk memastikan posisi tidak dapat dihapus jika memiliki role terkait.
- Mengoptimalkan logika pada paginasi di API datatables, termasuk default page dan size.
- Menyesuaikan response error saat gagal hapus posisi dengan redirect ke halaman index.
- Menambahkan pengujian unit dan fitur terhadap CRUD dan otorisasi PositionsController:
- Menguji akses halaman index, create, edit, dan delete posisi.
- Validasi penyimpanan, pembaruan, dan penghapusan posisi terhadap izin pengguna.
- Menguji akses eksport dan fungsionalitas datatables API.
- Validasi posisi tidak terhapus jika terikat dengan role.