add filament and admin user
Some checks failed
Build / build (push) Failing after 51s

This commit is contained in:
Ivo Spijkerman
2025-08-31 21:12:03 +02:00
parent f4e613893a
commit 069b57c7b3
7 changed files with 112 additions and 2 deletions

View File

@@ -4,6 +4,9 @@ APP_KEY=
APP_DEBUG=true APP_DEBUG=true
APP_URL=http://localhost APP_URL=http://localhost
ADMIN_EMAIL=ivo@spijkerman.com
ADMIN_PASS=
APP_LOCALE=nl APP_LOCALE=nl
APP_FALLBACK_LOCALE=nl APP_FALLBACK_LOCALE=nl
APP_FAKER_LOCALE=nl_NL APP_FAKER_LOCALE=nl_NL

View File

@@ -3,13 +3,20 @@
namespace App\Models; namespace App\Models;
// use Illuminate\Contracts\Auth\MustVerifyEmail; // use Illuminate\Contracts\Auth\MustVerifyEmail;
use Database\Factories\UserFactory;
use Filament\Models\Contracts\FilamentUser;
use Filament\Panel;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable; use Illuminate\Notifications\Notifiable;
class User extends Authenticatable /**
* @mixin Builder
*/
class User extends Authenticatable implements FilamentUser
{ {
/** @use HasFactory<\Database\Factories\UserFactory> */ /** @use HasFactory<UserFactory> */
use HasFactory, Notifiable; use HasFactory, Notifiable;
/** /**
@@ -45,4 +52,9 @@ class User extends Authenticatable
'password' => 'hashed', 'password' => 'hashed',
]; ];
} }
public function canAccessPanel(Panel $panel): bool
{
return $this->name === 'admin';
}
} }

View File

@@ -0,0 +1,59 @@
<?php
namespace App\Providers\Filament;
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\AuthenticateSession;
use Filament\Http\Middleware\DisableBladeIconComponents;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Pages\Dashboard;
use Filament\Panel;
use Filament\PanelProvider;
use Filament\Support\Colors\Color;
use Filament\Widgets\AccountWidget;
use Filament\Widgets\FilamentInfoWidget;
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
use Illuminate\Cookie\Middleware\EncryptCookies;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
use Illuminate\Routing\Middleware\SubstituteBindings;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->colors([
'primary' => Color::Amber,
])
->discoverResources(in: app_path('Filament/Resources'), for: 'App\Filament\Resources')
->discoverPages(in: app_path('Filament/Pages'), for: 'App\Filament\Pages')
->pages([
Dashboard::class,
])
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\Filament\Widgets')
->widgets([
AccountWidget::class,
FilamentInfoWidget::class,
])
->middleware([
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
SubstituteBindings::class,
DisableBladeIconComponents::class,
DispatchServingFilamentEvent::class,
])
->authMiddleware([
Authenticate::class,
]);
}
}

View File

@@ -2,4 +2,5 @@
return [ return [
App\Providers\AppServiceProvider::class, App\Providers\AppServiceProvider::class,
App\Providers\Filament\AdminPanelProvider::class,
]; ];

6
config/admin.php Normal file
View File

@@ -0,0 +1,6 @@
<?php
return [
'email' => env('ADMIN_EMAIL'),
'password' => env('ADMIN_PASS'),
];

View File

@@ -0,0 +1,28 @@
<?php
use App\Models\User;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*/
public function up(): void
{
User::factory()->create([
'name' => 'admin',
'email' => config('admin.email'),
'password' => Hash::make(config('admin.password')),
]);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
User::where('name', '=', 'admin')->delete();
}
};

View File

@@ -10,6 +10,7 @@ php artisan migrate --force
php artisan config:cache php artisan config:cache
php artisan route:cache php artisan route:cache
php artisan view:cache php artisan view:cache
php artisan filament:optimize
# Start supervisor # Start supervisor
/usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf