feat(permissions): implement permission management enhancements
- 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.
This commit is contained in:
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace Modules\Usermanagement\Models;
|
||||
|
||||
use Spatie\Activitylog\LogOptions;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Spatie\Activitylog\LogOptions;
|
||||
use Spatie\Activitylog\Traits\LogsActivity;
|
||||
use Spatie\Permission\Models\Permission as SpatiePermission;
|
||||
|
||||
class Permission extends SpatiePermission
|
||||
{
|
||||
use LogsActivity;
|
||||
use LogsActivity, SoftDeletes;
|
||||
|
||||
/**
|
||||
* Retrieve the activity log options for this permission.
|
||||
|
||||
@@ -12,6 +12,17 @@
|
||||
'slug'
|
||||
];
|
||||
|
||||
protected static function boot()
|
||||
{
|
||||
parent::boot();
|
||||
|
||||
static::creating(function ($model) {
|
||||
if (!$model->slug) {
|
||||
$model->slug = \Str::slug($model->name);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves all permissions associated with a given permission group ID.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user