mailwolt/database/seeders/AdminUserSeeder.php

47 lines
1.3 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
class AdminUserSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$name = env('APP_ADMIN_USER', 'mailwolt');
$email = env('APP_ADMIN_EMAIL', 'admin@localhost');
$pass = env('APP_ADMIN_PASS', 'ChangeMe'); // Wird beim ersten Login geändert
$user = User::firstOrCreate(
['email' => $email],
[
'name' => $name,
'username' => $name,
'password' => Hash::make($pass),
'is_active' => true,
'must_change_pw' => true,
'role' => 'admin',
'email_verified_at' => now(),
'remember_token' => Str::random(10),
]
);
// falls es den User schon gab, Flags sicher setzen
if (!$user->wasRecentlyCreated) {
$user->forceFill([
'is_active' => true,
'must_change_pw' => true,
'role' => 'admin',
])->save();
}
}
}