- 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.
35 lines
1.0 KiB
PHP
35 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\Usermanagement\Models;
|
|
|
|
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, SoftDeletes;
|
|
|
|
/**
|
|
* Retrieve the activity log options for this permission.
|
|
*
|
|
* @return LogOptions The activity log options.
|
|
*/
|
|
public function getActivitylogOptions()
|
|
: LogOptions
|
|
{
|
|
return LogOptions::defaults()->logAll()->useLogName('User Management|Permissions : ');
|
|
}
|
|
|
|
/**
|
|
* Retrieve the permission group associated with this permission.
|
|
*
|
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo The permission group relationship.
|
|
*/
|
|
public function group()
|
|
{
|
|
return $this->belongsTo(PermissionGroup::class, 'permission_group_id');
|
|
}
|
|
}
|