- 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.
- Ubah pencarian pada `PermissionsController` dan `UsersController`:
- Gunakan metode `whereRaw` dengan `LOWER` untuk pencocokan case-insensitive pada kolom `name` dan `email`.
- Tambahkan `HasFactory` pada model `User` agar mendukung pembuatan data dummy menggunakan factory.
- Implementasi fungsi `newFactory()` pada model `User` untuk merujuk ke UserFactory.
- Tambahkan file factory baru (`UserFactory`) untuk model `User`:
- Definisikan state default seperti `name`, `email`, `password`, dan `nik` untuk keperluan pembuatan data dummy.
- Gunakan password secara default terenkripsi dengan `bcrypt`.