Files
speedtest-tracker/app/Filament/Resources/ApiTokens/ApiTokenResource.php
T
2025-11-14 08:43:51 -05:00

64 lines
1.6 KiB
PHP

<?php
namespace App\Filament\Resources\ApiTokens;
use App\Filament\Resources\ApiTokens\Pages\ListApiTokens;
use App\Filament\Resources\ApiTokens\Schemas\ApiTokenForm;
use App\Filament\Resources\ApiTokens\Tables\ApiTokenTable;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables\Table;
use Illuminate\Support\Facades\Auth;
use Laravel\Sanctum\PersonalAccessToken;
class ApiTokenResource extends Resource
{
protected static ?string $model = PersonalAccessToken::class;
protected static string|\BackedEnum|null $navigationIcon = 'tabler-api';
protected static string|\UnitEnum|null $navigationGroup = 'Settings';
public static function getLabel(): ?string
{
return __('api_tokens.api_token');
}
public static function getPluralLabel(): ?string
{
return __('api_tokens.api_tokens');
}
public static function canAccess(): bool
{
return Auth::check() && Auth::user()->is_admin;
}
public static function shouldRegisterNavigation(): bool
{
return Auth::check() && Auth::user()->is_admin;
}
public static function form(Schema $schema): Schema
{
return $schema->components(ApiTokenForm::schema());
}
public static function table(Table $table): Table
{
return ApiTokenTable::table($table);
}
public static function getTokenFormSchema(): array
{
return ApiTokenForm::schema();
}
public static function getPages(): array
{
return [
'index' => ListApiTokens::route('/'),
];
}
}