40 lines
1.1 KiB
PHP
40 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire\Admin;
|
|
|
|
use Livewire\Component;
|
|
use Spatie\Permission\Models\Role;
|
|
use Spatie\Permission\Models\Permission;
|
|
use Masmerise\Toaster\Toaster;
|
|
|
|
class RolePermissions extends Component
|
|
{
|
|
public Role $role;
|
|
public $selectedPermissions = [];
|
|
|
|
public function mount(Role $role)
|
|
{
|
|
$this->role = $role;
|
|
// Ambil permission yang sudah dimiliki role ini
|
|
$this->selectedPermissions = $role->permissions->pluck('name')->toArray();
|
|
}
|
|
|
|
public function save()
|
|
{
|
|
$this->role->syncPermissions($this->selectedPermissions);
|
|
Toaster::success('Hak akses untuk role ' . $this->role->name . ' berhasil diperbarui!');
|
|
|
|
return redirect()->route('admin.roles'); // Kembali ke daftar role
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('livewire.admin.role-permissions', [
|
|
'allPermissions' => Permission::all()->groupBy(function($perm) {
|
|
// Opsional: Kelompokkan berdasarkan kata pertama (misal: 'user-list' jadi group 'user')
|
|
return explode('-', $perm->name)[0];
|
|
})
|
|
]);
|
|
}
|
|
}
|