diff --git a/database/seeders/RootUserSeeder.php b/database/seeders/RootUserSeeder.php index b356d8cf2..6cc877b0a 100644 --- a/database/seeders/RootUserSeeder.php +++ b/database/seeders/RootUserSeeder.php @@ -6,6 +6,8 @@ use App\Models\InstanceSettings; use App\Models\User; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\Hash; +use Illuminate\Support\Facades\Validator; +use Illuminate\Validation\Rules\Password; class RootUserSeeder extends Seeder { @@ -18,6 +20,25 @@ class RootUserSeeder extends Seeder } if (env('ROOT_USER_EMAIL') && env('ROOT_USER_PASSWORD')) { + $validator = Validator::make([ + 'email' => env('ROOT_USER_EMAIL'), + 'username' => env('ROOT_USERNAME', 'Root User'), + 'password' => env('ROOT_USER_PASSWORD'), + ], [ + 'email' => ['required', 'email:rfc,dns', 'max:255'], + 'username' => ['required', 'string', 'min:3', 'max:255', 'regex:/^[a-zA-Z0-9\s-_]+$/'], + 'password' => ['required', 'string', 'min:8', Password::min(8)->mixedCase()->letters()->numbers()->symbols()->uncompromised()], + ]); + + if ($validator->fails()) { + echo " Validation failed:\n"; + foreach ($validator->errors()->all() as $error) { + echo " - {$error}\n"; + } + + return; + } + User::create([ 'id' => 0, 'name' => env('ROOT_USERNAME', 'Root User'),