+ Added seeder for default admin user.

This commit is contained in:
2025-08-20 11:06:02 +02:00
parent e310838d03
commit 1dcbdee898
3 changed files with 36 additions and 4 deletions

View File

@@ -63,3 +63,10 @@ AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false AWS_USE_PATH_STYLE_ENDPOINT=false
VITE_APP_NAME="${APP_NAME}" VITE_APP_NAME="${APP_NAME}"
# Admin user details to be created on the first run in case of an empty database
ADMIN_EMAIL=
ADMIN_NAME=
ADMIN_HANDLE=
ADMIN_PASSWORD=

12
config/scriptum.php Normal file
View File

@@ -0,0 +1,12 @@
<?php
return [
'setup' => [
'admin_email' => env('ADMIN_EMAIL', 'admin@example.com'),
'admin_name' => env('ADMIN_NAME', 'Scriptum Admin'),
'admin_handle' => env('ADMIN_HANDLE', 'scriptum-admin'),
'admin_password' => env('ADMIN_PASSWORD', 'PlEaSe_ChAnGe_Me'),
],
];

View File

@@ -5,6 +5,8 @@ namespace Database\Seeders;
use App\Models\User; use App\Models\User;
// use Illuminate\Database\Console\Seeds\WithoutModelEvents; // use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
class DatabaseSeeder extends Seeder class DatabaseSeeder extends Seeder
{ {
@@ -13,11 +15,22 @@ class DatabaseSeeder extends Seeder
*/ */
public function run(): void public function run(): void
{ {
// User::factory(10)->create();
User::factory()->create([ //NOTE: In docker the seeding may be re-run on each restart, so we only create the admin user if it isn't already present
'name' => 'Test User',
'email' => 'test@example.com', // skip, if the admin user already exists
if (null !== User::where('is_admin', true)->first()) {
return;
}
// create the admin user
$user = User::create([
'name' => config('scriptum.setup.admin_name'),
'email' => config('scriptum.setup.admin_email'),
'handle' => config('scriptum.setup.admin_handle'),
'password' => Hash::make(config('scriptum.setup.admin_password')),
'is_admin' => true,
]); ]);
} }
} }