feat: tambah fitur impersonate user untuk super_admin
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Filament\Resources\Users\Pages;
|
||||
use App\Filament\Resources\Users\UserResource;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
use STS\FilamentImpersonate\Actions\Impersonate;
|
||||
|
||||
class EditUser extends EditRecord
|
||||
{
|
||||
@@ -13,6 +14,7 @@ class EditUser extends EditRecord
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Impersonate::make()->record($this->getRecord()),
|
||||
DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ use Filament\Actions\EditAction;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Tables\Filters\SelectFilter;
|
||||
use Filament\Tables\Table;
|
||||
use STS\FilamentImpersonate\Actions\Impersonate;
|
||||
|
||||
class UsersTable
|
||||
{
|
||||
@@ -30,7 +31,7 @@ class UsersTable
|
||||
SelectFilter::make('division_id')->label('Divisi')
|
||||
->options(Division::pluck('name', 'id')),
|
||||
])
|
||||
->recordActions([EditAction::make()])
|
||||
->recordActions([EditAction::make(), Impersonate::make()])
|
||||
->toolbarActions([BulkActionGroup::make([DeleteBulkAction::make()])]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,4 +50,14 @@ class User extends Authenticatable
|
||||
{
|
||||
return $this->hasMany(CashRecord::class, 'created_by');
|
||||
}
|
||||
|
||||
public function canImpersonate(): bool
|
||||
{
|
||||
return $this->hasRole('super_admin');
|
||||
}
|
||||
|
||||
public function canBeImpersonated(): bool
|
||||
{
|
||||
return ! $this->hasRole('super_admin');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user