- 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.
44 lines
1.0 KiB
PHP
44 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\Role as SpatieRole;
|
|
|
|
class Role extends SpatieRole
|
|
{
|
|
use softDeletes, LogsActivity;
|
|
|
|
/**
|
|
* The attributes that are mass assignable.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $fillable = [
|
|
'name',
|
|
'guard_name',
|
|
'position_id',
|
|
];
|
|
|
|
/**
|
|
* Retrieve the activity log options for this role.
|
|
*
|
|
* @return LogOptions The activity log options.
|
|
*/
|
|
public function getActivitylogOptions()
|
|
: LogOptions
|
|
{
|
|
return LogOptions::defaults()->logAll()->useLogName('User Management|Roles : ');
|
|
}
|
|
|
|
/**
|
|
* Get the position that owns the role.
|
|
*/
|
|
public function position()
|
|
{
|
|
return $this->belongsTo(Position::class);
|
|
}
|
|
}
|