feat: email, username and password validation when they are set via envs

This commit is contained in:
peaklabs-dev
2025-01-16 18:07:40 +01:00
parent 4b6690e599
commit 9288e60174

View File

@@ -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'),