From 307aa2503344c81cb9215b24c26dba3ae79ef73a Mon Sep 17 00:00:00 2001 From: Seb Kay Date: Mon, 8 Dec 2025 07:34:12 +0000 Subject: [PATCH 1/5] Remove use of backslashes --- app/Filament/Widgets/UserStats.php | 4 ++-- app/Http/Controllers/LoginController.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Filament/Widgets/UserStats.php b/app/Filament/Widgets/UserStats.php index d4fc8b9..2c7037b 100644 --- a/app/Filament/Widgets/UserStats.php +++ b/app/Filament/Widgets/UserStats.php @@ -12,8 +12,8 @@ protected function getStats(): array { return [ Stat::make('Users', User::query()->count()), - Stat::make('New users (last 7 days)', User::query()->where('created_at', '>=', \now()->subDays(7))->count()), - Stat::make('New users (last 30 days)', User::query()->where('created_at', '>=', \now()->subDays(30))->count()), + Stat::make('New users (last 7 days)', User::query()->where('created_at', '>=', now()->subDays(7))->count()), + Stat::make('New users (last 30 days)', User::query()->where('created_at', '>=', now()->subDays(30))->count()), ]; } } diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php index bb20921..1713f2d 100644 --- a/app/Http/Controllers/LoginController.php +++ b/app/Http/Controllers/LoginController.php @@ -34,6 +34,6 @@ public function store(LoginStoreRequest $request) return redirect()->to($request->validated('redirect')); } - return redirect()->intended(\route('home')); + return redirect()->intended(route('home')); } } From 5383db71098dd50f10e456313171900e04a0f493 Mon Sep 17 00:00:00 2001 From: Seb Kay Date: Mon, 8 Dec 2025 07:34:42 +0000 Subject: [PATCH 2/5] Import scope attribute --- app/Models/User.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Models/User.php b/app/Models/User.php index 3bc793a..a31f8f9 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -7,6 +7,7 @@ use Filament\Models\Contracts\HasName; use Filament\Panel; use Illuminate\Contracts\Auth\MustVerifyEmail; +use Illuminate\Database\Eloquent\Attributes\Scope; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Casts\Attribute; use Illuminate\Database\Eloquent\Factories\HasFactory; @@ -56,7 +57,7 @@ protected function allPermissions(): Attribute ); } - #[\Illuminate\Database\Eloquent\Attributes\Scope] + #[Scope] protected function hasRoles(Builder $query, array $roles): void { $query->whereHas('roles', fn (Builder $query) => $query->whereIn('name', $roles)); From 8d9df6675938e80e15b73b9342b52524834d3443 Mon Sep 17 00:00:00 2001 From: Seb Kay Date: Mon, 8 Dec 2025 07:36:05 +0000 Subject: [PATCH 3/5] Remove roles and permissions policies --- app/Policies/PermissionPolicy.php | 14 -------------- app/Policies/RolePolicy.php | 14 -------------- app/Providers/AuthServiceProvider.php | 17 ----------------- bootstrap/providers.php | 1 - 4 files changed, 46 deletions(-) delete mode 100644 app/Policies/PermissionPolicy.php delete mode 100644 app/Policies/RolePolicy.php delete mode 100644 app/Providers/AuthServiceProvider.php diff --git a/app/Policies/PermissionPolicy.php b/app/Policies/PermissionPolicy.php deleted file mode 100644 index 99df0dc..0000000 --- a/app/Policies/PermissionPolicy.php +++ /dev/null @@ -1,14 +0,0 @@ -hasRole(Role::SUPER_ADMIN); - } -} diff --git a/app/Policies/RolePolicy.php b/app/Policies/RolePolicy.php deleted file mode 100644 index cf3ce85..0000000 --- a/app/Policies/RolePolicy.php +++ /dev/null @@ -1,14 +0,0 @@ -hasRole(Role::SUPER_ADMIN); - } -} diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php deleted file mode 100644 index 8c02392..0000000 --- a/app/Providers/AuthServiceProvider.php +++ /dev/null @@ -1,17 +0,0 @@ - RolePolicy::class, - Permission::class => PermissionPolicy::class, - ]; -} diff --git a/bootstrap/providers.php b/bootstrap/providers.php index 0842610..22744d1 100644 --- a/bootstrap/providers.php +++ b/bootstrap/providers.php @@ -2,6 +2,5 @@ return [ App\Providers\AppServiceProvider::class, - App\Providers\AuthServiceProvider::class, App\Providers\Filament\AdminPanelProvider::class, ]; From fedcd99f28cdd311409358ef4dd21e172813967d Mon Sep 17 00:00:00 2001 From: Seb Kay Date: Mon, 8 Dec 2025 07:43:24 +0000 Subject: [PATCH 4/5] Fix users in Filament search --- app/Filament/Resources/Users/UserResource.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/app/Filament/Resources/Users/UserResource.php b/app/Filament/Resources/Users/UserResource.php index 1b7ec44..cc37390 100644 --- a/app/Filament/Resources/Users/UserResource.php +++ b/app/Filament/Resources/Users/UserResource.php @@ -11,6 +11,7 @@ use Filament\Resources\Resource; use Filament\Schemas\Schema; use Filament\Tables\Table; +use Illuminate\Database\Eloquent\Model; class UserResource extends Resource { @@ -18,7 +19,21 @@ class UserResource extends Resource protected static string|\BackedEnum|null $navigationIcon = 'heroicon-o-users'; - protected static ?string $recordTitleAttribute = 'full_name'; + protected static ?string $recordTitleAttribute = 'email'; + + public static function getGloballySearchableAttributes(): array + { + return ['email', 'first_name', 'last_name', 'roles.name']; + } + + public static function getGlobalSearchResultDetails(Model $record): array + { + return [ + 'Name' => $record->fullName, + 'Roles' => $record->roles->pluck('name')->join(', '), + 'Verified' => $record->hasVerifiedEmail() ? 'Yes' : 'No', + ]; + } public static function form(Schema $schema): Schema { From ead58f5ee029d7464c173d518356d600557fa359 Mon Sep 17 00:00:00 2001 From: Seb Kay Date: Mon, 8 Dec 2025 07:44:33 +0000 Subject: [PATCH 5/5] Add keybindings for Filament search --- app/Providers/Filament/AdminPanelProvider.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Providers/Filament/AdminPanelProvider.php b/app/Providers/Filament/AdminPanelProvider.php index 9219e69..3d6fc88 100644 --- a/app/Providers/Filament/AdminPanelProvider.php +++ b/app/Providers/Filament/AdminPanelProvider.php @@ -26,6 +26,8 @@ public function panel(Panel $panel): Panel ->id('admin') ->path('admin') ->topbar(false) + ->globalSearchKeyBindings(['command+k', 'ctrl+k']) + ->globalSearchFieldKeyBindingSuffix() ->viteTheme('resources/css/filament/admin/theme.css') ->colors([ 'primary' => '#1e293b',