chore: add env variables for filament panel management

This commit is contained in:
idevakk
2025-09-29 00:41:01 +05:30
parent af52ef6ba6
commit 166bcce967
6 changed files with 73 additions and 8 deletions

View File

@@ -68,3 +68,7 @@ ACTIVITY_LOGGER_ENABLED=true
ACTIVITY_LOGGER_TABLE_NAME=activity_log
FILAMENT_LOG_VIEWER_DRIVER=raw
FILAMENT_ROUTE=dash
FILAMENT_ENABLE_LOGIN=true
FILAMENT_ENABLE_REGISTER=false
FILAMENT_ENABLE_PROFILE=false

View File

@@ -2,6 +2,8 @@
namespace App\Models;
use Filament\Models\Contracts\FilamentUser;
use Filament\Panel;
use Illuminate\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
@@ -10,7 +12,7 @@ use Illuminate\Support\Str;
use Laravel\Fortify\TwoFactorAuthenticatable;
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable
class User extends Authenticatable implements FilamentUser
{
/** @use HasFactory<\Database\Factories\UserFactory> */
use HasFactory, Notifiable, TwoFactorAuthenticatable, MustVerifyEmail, HasRoles;
@@ -61,4 +63,9 @@ class User extends Authenticatable
->map(fn ($word) => Str::substr($word, 0, 1))
->implode('');
}
public function canAccessPanel(Panel $panel): bool
{
return $this->hasPermissionTo('manage panels');
}
}

View File

@@ -28,14 +28,11 @@ class DashPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
$panel = $panel
->default()
->id('dash')
->path('dash')
->login()
->colors([
'primary' => Color::Amber,
])
->path(config('filament-php.route'))
->colors(config('filament-php.colors'))
->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages')
->pages([
@@ -81,5 +78,19 @@ class DashPanelProvider extends PanelProvider
}),
])
->routes(fn () => FilamentMails::routes());
if (config('filament-php.enable_login')) {
$panel->login();
}
if (config('filament-php.enable_registration')) {
$panel->register();
}
if (config('filament-php.enable_profile')) {
$panel->profile();
}
return $panel;
}
}

18
config/filament-php.php Normal file
View File

@@ -0,0 +1,18 @@
<?php
use Filament\Support\Colors\Color;
return [
'route' => env('FILAMENT_ROUTE', 'dash'),
'colors' => [
'primary' => Color::Teal,
'danger' => Color::Red,
'gray' => Color::Zinc,
'info' => Color::Blue,
'success' => Color::Green,
'warning' => Color::Amber,
],
'enable_login' => env('FILAMENT_ENABLE_LOGIN', true),
'enable_registration' => env('FILAMENT_ENABLE_REGISTER', false),
'enable_profile' => env('FILAMENT_ENABLE_PROFILE', false),
];

View File

@@ -26,6 +26,31 @@
--color-accent: var(--color-neutral-800);
--color-accent-content: var(--color-neutral-800);
--color-accent-foreground: var(--color-white);
--color-primary-50: #f0f3fd;
--color-primary-100: #e5eafa;
--color-primary-200: #cfd8f6;
--color-primary-300: #b2beef;
--color-primary-400: #929ce7;
--color-primary-500: #787ddc;
--color-primary-600: #615dce;
--color-primary-700: #5853b7;
--color-primary-800: #444192;
--color-primary-900: #3b3a75;
--color-primary-950: #232244;
--color-app-primary-50: oklch(0.958 0.012 291.4);
--color-app-primary-100: oklch(0.915 0.027 292.8);
--color-app-primary-200: oklch(0.839 0.051 291.47);
--color-app-primary-300: oklch(0.755 0.081 290.76);
--color-app-primary-400: oklch(0.674 0.11 290.49);
--color-app-primary-500: oklch(0.589 0.137 290.02);
--color-app-primary-600: oklch(0.506 0.16 288.92);
--color-app-primary-700: oklch(0.418 0.144 288.02);
--color-app-primary-800: oklch(0.321 0.111 288.33);
--color-app-primary-900: oklch(0.232 0.08 287.92);
--color-app-primary-950: oklch(0.183 0.064 288.2);
}
@layer theme {