From 76f4127bb20d3f3eb16dfb2121a7d05debe4e028 Mon Sep 17 00:00:00 2001 From: salam Date: Wed, 15 Oct 2025 11:47:47 +0200 Subject: [PATCH] agb wip --- .../Resources/Users/Pages/ListUsers.php | 31 ++++++ .../Resources/Users/Schemas/UserForm.php | 36 ++++--- app/Http/Middleware/AppUserAGBMiddleware.php | 25 +++++ app/Models/Invitation.php | 14 +++ app/Providers/Filament/AdminPanelProvider.php | 4 +- bootstrap/cache/config.php | 4 +- bootstrap/cache/routes-v7.php | 96 +++++++++---------- ..._10_15_075159_create_invitations_table.php | 31 ++++++ 8 files changed, 177 insertions(+), 64 deletions(-) create mode 100644 app/Http/Middleware/AppUserAGBMiddleware.php create mode 100644 app/Models/Invitation.php create mode 100644 database/migrations/2025_10_15_075159_create_invitations_table.php diff --git a/app/Filament/Resources/Users/Pages/ListUsers.php b/app/Filament/Resources/Users/Pages/ListUsers.php index df5d61b..18dab83 100644 --- a/app/Filament/Resources/Users/Pages/ListUsers.php +++ b/app/Filament/Resources/Users/Pages/ListUsers.php @@ -3,8 +3,11 @@ namespace App\Filament\Resources\Users\Pages; use App\Filament\Resources\Users\UserResource; +use Filament\Actions\Action; use Filament\Actions\CreateAction; +use Filament\Forms\Components\TextInput; use Filament\Resources\Pages\ListRecords; +use Filament\Schemas\Components\Section; class ListUsers extends ListRecords { @@ -13,6 +16,34 @@ class ListUsers extends ListRecords protected function getHeaderActions(): array { return [ + Action::make('inviteUser') + ->label('Einladen') + ->icon('phosphor-envelope') + ->form([ + Section::make('Jemanden einladen') + ->icon('lucide-user') + ->description('Nur mit dieser Einladung können sich weitere Benutzer bei diesem Konto registrieren.') + ->schema([ + TextInput::make('email') + ->label('E-Mail') + ->prefixIcon('phosphor-envelope') + ->email() + ->required() + ->belowContent('Die Einladung ist 12 Stunden gültig.'), + ]), + ]) + ->action(function ($data) { + $invitation = Invitation::create([ + 'knoto_id' => auth()->user()->konto_id, + 'email' => $data['email'], + ]); + + // @todo Add email sending here + + Notification::make('invitedSuccess') + ->body('Der Benutzer wurde erfolgreich eingelanden!') + ->success()->send(); + }), CreateAction::make() ->icon('phosphor-file-plus') ->createAnother(false) diff --git a/app/Filament/Resources/Users/Schemas/UserForm.php b/app/Filament/Resources/Users/Schemas/UserForm.php index ae66eb4..0812bf0 100644 --- a/app/Filament/Resources/Users/Schemas/UserForm.php +++ b/app/Filament/Resources/Users/Schemas/UserForm.php @@ -21,15 +21,24 @@ class UserForm Section::make('Benutzerkonto') ->icon('lucide-user') ->schema([ - TextInput::make('name')->required(), + Select::make('gender') + ->prefixIcon('phosphor-gender-neuter') + ->label('Geschlecht') + ->options([ + 'Herr' => 'Herr', + 'Frau' => 'Frau', + 'Non-binary' => 'Non-binary', + ]) + ->required(), + TextInput::make('name') + ->prefixIcon('phosphor-user') + ->required(), TextInput::make('email')->email() ->required() + ->prefixIcon('phosphor-envelope') ->label('E-Mail'), - ]), - Section::make('Sicherheit') - ->icon('lucide-lock') - ->schema([ TextInput::make('password') + ->prefixIcon('phosphor-lock') ->label('Passwort') ->password() // Masks the input ->required() @@ -38,19 +47,22 @@ class UserForm ->dehydrateStateUsing(fn ($state) => bcrypt($state)) // Hashes the password before saving ->label('Password'), TextInput::make('password_confirmation') + ->prefixIcon('phosphor-lock') ->password() // Masks the input ->required() ->same('password') // Validates that this matches the 'password' field ->label('Passwort Bestätigen'), + Select::make('roles') + ->label('Rolle') + ->prefixIcon('phosphor-gear') + ->aboveContent('Nur für SuperAdmin sichtbare') + ->visible(fn () => auth()->user()->hasRole('super_admin')) + ->relationship('roles', 'name') + ->multiple() + ->preload() + ->searchable(), ]), - Select::make('roles') - ->label('Rolle') - ->visible(fn () => auth()->user()->hasRole('super_admin')) - ->relationship('roles', 'name') - ->multiple() - ->preload() - ->searchable(), ])->columns(1); } } diff --git a/app/Http/Middleware/AppUserAGBMiddleware.php b/app/Http/Middleware/AppUserAGBMiddleware.php new file mode 100644 index 0000000..9664655 --- /dev/null +++ b/app/Http/Middleware/AppUserAGBMiddleware.php @@ -0,0 +1,25 @@ +user()->agb_akzeptiert == 0) { + // return static::getResource()::getUrl('index'); + abort(Response::HTTP_FORBIDDEN, 'Bitte akzeptieren sie unsere AGBs.'); + } + + return $next($request); + } +} diff --git a/app/Models/Invitation.php b/app/Models/Invitation.php new file mode 100644 index 0000000..c7421c4 --- /dev/null +++ b/app/Models/Invitation.php @@ -0,0 +1,14 @@ +authMiddleware([ - AppUserVerifiedMiddleware::class, + AppUserAGBMiddleware::class, Authenticate::class, ])->plugins([ FilamentShieldPlugin::make() diff --git a/bootstrap/cache/config.php b/bootstrap/cache/config.php index f053558..ce7485b 100644 --- a/bootstrap/cache/config.php +++ b/bootstrap/cache/config.php @@ -124,9 +124,9 @@ 'timezone' => 'UTC', 'locale' => 'de', 'fallback_locale' => 'en', - 'faker_locale' => 'at_AT', + 'faker_locale' => 'de_AT', 'cipher' => 'AES-256-CBC', - 'key' => 'base64:yRi9h21i7xAkGpeF7JoArovQJU1w6xwczQ6ijpYpJrs=', + 'key' => 'base64:3uv/ppXplpqmYtiZ5ZyILnoOTmKfZAz27bfsnR1qmaE=', 'previous_keys' => array ( ), diff --git a/bootstrap/cache/routes-v7.php b/bootstrap/cache/routes-v7.php index 2412703..f84ef03 100644 --- a/bootstrap/cache/routes-v7.php +++ b/bootstrap/cache/routes-v7.php @@ -531,7 +531,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::5bq2SStbleiEhGj1', + '_route' => 'generated::XELvTeyTx0iucj1I', ), 1 => NULL, 2 => @@ -551,7 +551,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::jSXo9yS21C1XjEKm', + '_route' => 'generated::RJCRoaZCsw58BXBj', ), 1 => NULL, 2 => @@ -609,7 +609,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::IVDpND6th1vBsdVG', + '_route' => 'generated::6A0l0tPkXKDuiCPC', ), 1 => NULL, 2 => @@ -629,7 +629,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::fH34UfhJ1cyhPNER', + '_route' => 'generated::nW1FfJkaaRaObIs1', ), 1 => NULL, 2 => @@ -649,7 +649,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::DfL8JtZX0QR2TkKj', + '_route' => 'generated::9no3IR4iKrXVmjP1', ), 1 => NULL, 2 => @@ -669,7 +669,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::ZHiFlf1ZCQLqjNcg', + '_route' => 'generated::3cYLBNVGFReEu7sY', ), 1 => NULL, 2 => @@ -689,7 +689,7 @@ app('router')->setCompiledRoutes( array ( 0 => array ( - '_route' => 'generated::4UNnN7mvchOUrrNr', + '_route' => 'generated::8gMtlzrt61r64CMZ', ), 1 => NULL, 2 => @@ -1315,7 +1315,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', ), 'uses' => 'Filament\\Auth\\Http\\Controllers\\LogoutController@__invoke', @@ -1364,7 +1364,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -1417,7 +1417,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', ), 'uses' => 'Filament\\Auth\\Pages\\EmailVerification\\EmailVerificationPrompt@__invoke', @@ -1466,7 +1466,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'signed', 13 => 'throttle:6,1', @@ -1517,7 +1517,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'signed', 13 => 'throttle:6,1', @@ -1568,7 +1568,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'signed', 13 => 'throttle:6,1', @@ -1619,7 +1619,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -1672,7 +1672,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -1725,7 +1725,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -1778,7 +1778,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -1831,7 +1831,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -1884,7 +1884,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -1937,7 +1937,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -1990,7 +1990,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2043,7 +2043,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2096,7 +2096,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2149,7 +2149,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2202,7 +2202,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2255,7 +2255,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2308,7 +2308,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2361,7 +2361,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2414,7 +2414,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2467,7 +2467,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2520,7 +2520,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2573,7 +2573,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2626,7 +2626,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2679,7 +2679,7 @@ app('router')->setCompiledRoutes( 7 => 'Illuminate\\Routing\\Middleware\\SubstituteBindings', 8 => 'Filament\\Http\\Middleware\\DisableBladeIconComponents', 9 => 'Filament\\Http\\Middleware\\DispatchServingFilamentEvent', - 10 => 'App\\Http\\Middleware\\AppUserVerifiedMiddleware', + 10 => 'App\\Http\\Middleware\\AppUserAGBMiddleware', 11 => 'Filament\\Http\\Middleware\\Authenticate', 12 => 'verified:filament.admin.auth.email-verification.prompt', ), @@ -2740,7 +2740,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::5bq2SStbleiEhGj1' => + 'generated::XELvTeyTx0iucj1I' => array ( 'methods' => array ( @@ -2752,7 +2752,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@returnJavaScriptAsFile', - 'as' => 'generated::5bq2SStbleiEhGj1', + 'as' => 'generated::XELvTeyTx0iucj1I', ), 'fallback' => false, 'defaults' => @@ -2768,7 +2768,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::jSXo9yS21C1XjEKm' => + 'generated::RJCRoaZCsw58BXBj' => array ( 'methods' => array ( @@ -2780,7 +2780,7 @@ app('router')->setCompiledRoutes( array ( 'uses' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', 'controller' => 'Livewire\\Mechanisms\\FrontendAssets\\FrontendAssets@maps', - 'as' => 'generated::jSXo9yS21C1XjEKm', + 'as' => 'generated::RJCRoaZCsw58BXBj', ), 'fallback' => false, 'defaults' => @@ -2882,7 +2882,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::IVDpND6th1vBsdVG' => + 'generated::6A0l0tPkXKDuiCPC' => array ( 'methods' => array ( @@ -2911,7 +2911,7 @@ app('router')->setCompiledRoutes( \'exception\' => $exception, ]), status: $exception ? 500 : 200); }";s:5:"scope";s:54:"Illuminate\\Foundation\\Configuration\\ApplicationBuilder";s:4:"this";N;s:4:"self";s:32:"0000000000000f3b0000000000000000";}}', - 'as' => 'generated::IVDpND6th1vBsdVG', + 'as' => 'generated::6A0l0tPkXKDuiCPC', ), 'fallback' => false, 'defaults' => @@ -2927,7 +2927,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::fH34UfhJ1cyhPNER' => + 'generated::nW1FfJkaaRaObIs1' => array ( 'methods' => array ( @@ -2949,7 +2949,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::fH34UfhJ1cyhPNER', + 'as' => 'generated::nW1FfJkaaRaObIs1', ), 'fallback' => false, 'defaults' => @@ -2965,7 +2965,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::DfL8JtZX0QR2TkKj' => + 'generated::9no3IR4iKrXVmjP1' => array ( 'methods' => array ( @@ -2987,7 +2987,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::DfL8JtZX0QR2TkKj', + 'as' => 'generated::9no3IR4iKrXVmjP1', ), 'fallback' => false, 'defaults' => @@ -3003,7 +3003,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::ZHiFlf1ZCQLqjNcg' => + 'generated::3cYLBNVGFReEu7sY' => array ( 'methods' => array ( @@ -3025,7 +3025,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::ZHiFlf1ZCQLqjNcg', + 'as' => 'generated::3cYLBNVGFReEu7sY', ), 'fallback' => false, 'defaults' => @@ -3041,7 +3041,7 @@ app('router')->setCompiledRoutes( 'waitSeconds' => NULL, 'withTrashed' => false, ), - 'generated::4UNnN7mvchOUrrNr' => + 'generated::8gMtlzrt61r64CMZ' => array ( 'methods' => array ( @@ -3063,7 +3063,7 @@ app('router')->setCompiledRoutes( 'where' => array ( ), - 'as' => 'generated::4UNnN7mvchOUrrNr', + 'as' => 'generated::8gMtlzrt61r64CMZ', ), 'fallback' => false, 'defaults' => diff --git a/database/migrations/2025_10_15_075159_create_invitations_table.php b/database/migrations/2025_10_15_075159_create_invitations_table.php new file mode 100644 index 0000000..428b1d4 --- /dev/null +++ b/database/migrations/2025_10_15_075159_create_invitations_table.php @@ -0,0 +1,31 @@ +id(); + $table->foreignId('konto_id')->constrained(); + $table->string('gender'); + $table->string('email'); + $table->integer('valid_hours_from_creation')->default(12); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('invitations'); + } +};