Skip to content

Commit e95b166

Browse files
committed
Filament panel access restriction
1 parent a5612fe commit e95b166

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

app/Models/User.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
use App\Concerns\HasTimestamps;
66
use App\Concerns\PreparesSearch;
77
use App\Enums\NotificationType;
8+
use App\Policies\UserPolicy;
89
use Carbon\Carbon;
10+
use Filament\Facades\Filament;
11+
use Filament\Models\Contracts\FilamentUser;
12+
use Filament\Panel;
913
use Illuminate\Contracts\Auth\MustVerifyEmail;
1014
use Illuminate\Database\Eloquent\Builder;
1115
use Illuminate\Database\Eloquent\Factories\HasFactory;
@@ -17,7 +21,7 @@
1721
use Laravel\Sanctum\HasApiTokens;
1822
use Laravel\Scout\Searchable;
1923

20-
final class User extends Authenticatable implements MustVerifyEmail
24+
final class User extends Authenticatable implements MustVerifyEmail, FilamentUser
2125
{
2226
use HasApiTokens;
2327
use HasFactory;
@@ -410,4 +414,11 @@ public function isNotificationAllowed(string $notification): bool
410414
return NotificationType::from($notificationType)->getClass() === $notification;
411415
});
412416
}
417+
418+
public function canAccessPanel(Panel $panel): bool
419+
{
420+
$guard = Filament::getAuthGuard();
421+
422+
return Auth::guard($guard)->user()->can(UserPolicy::ADMIN, User::class);
423+
}
413424
}

0 commit comments

Comments
 (0)