Skip to content

Commit 9c596a4

Browse files
committed
Add manage api tokens page
1 parent 3334864 commit 9c596a4

4 files changed

Lines changed: 46 additions & 0 deletions

File tree

config/backstage/users.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// config for Backstage/Users
44

55
use Backstage\Users\Models;
6+
use Backstage\Users\Pages\ManageApiTokens;
67
use Backstage\Users\Resources\UserResource;
78
use Backstage\Users\Resources\UsersTagResource;
89

@@ -12,6 +13,10 @@
1213
'users-tags' => UsersTagResource::class,
1314
],
1415

16+
'pages' => [
17+
'manage-api-tokens' => ManageApiTokens::class,
18+
],
19+
1520
'eloquent' => [
1621
'users' => [
1722
'model' => Models\User::class,
@@ -30,5 +35,6 @@
3035
'user_traffic' => true,
3136
'user_must_verify' => true,
3237
'can_toggle_sub_navigation' => true,
38+
'manage-api-tokens' => false,
3339
],
3440
];
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<x-filament-panels::page>
2+
3+
</x-filament-panels::page>

src/Pages/ManageApiTokens.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace Backstage\Users\Pages;
4+
5+
use Filament\Pages\Concerns\HasRoutes;
6+
use Filament\Pages\Page;
7+
8+
class ManageApiTokens extends Page
9+
{
10+
protected static ?string $navigationIcon = 'heroicon-o-document-text';
11+
12+
protected static string $view = 'backstage/users::pages.manage-api-tokens';
13+
14+
public static function shouldRegisterNavigation(): bool
15+
{
16+
return false;
17+
}
18+
19+
public static function canAccess(): bool
20+
{
21+
return config('backstage.users.record.manage-api-tokens', false);
22+
}
23+
}

src/UsersPlugin.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
use Backstage\Users\Http\Middleware\DetectUserTraffic;
77
use Backstage\Users\Http\Middleware\RedirectUnverifiedUsers;
88
use Filament\Contracts\Plugin;
9+
use Filament\Facades\Filament;
10+
use Filament\Navigation\MenuItem;
911
use Filament\Panel;
1012
use Filament\View\PanelsRenderHook;
1113
use Livewire\Livewire;
@@ -54,6 +56,18 @@ public function register(Panel $panel): void
5456
$panel->passwordReset();
5557

5658
$panel->authPasswordBroker('users');
59+
60+
$panel->pages([
61+
config('backstage.users.pages.manage-api-tokens', Pages\ManageApiTokens::class),
62+
]);
63+
64+
$panel->userMenuItems([
65+
MenuItem::make('api_tokens')
66+
->label(__('API Tokens'))
67+
->visible(fn() => config('backstage.users.pages.manage-api-tokens', Pages\ManageApiTokens::class)::canAccess())
68+
->icon('heroicon-o-document-text')
69+
->url(fn() => config('backstage.users.pages.manage-api-tokens', Pages\ManageApiTokens::class)::getUrl()),
70+
]);
5771
}
5872

5973
public function boot(Panel $panel): void

0 commit comments

Comments
 (0)