Admin Panel
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-09-29 14:57:37 +07:00
parent 04fbddba13
commit 8c6dad2a31
94 changed files with 4864 additions and 1151 deletions
+43
View File
@@ -0,0 +1,43 @@
<?php
namespace Database\Seeders;
use App\Enums\UserRole;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Str;
/**
* Creates the first admin panel account from the ADMIN_* settings in .env.
* An existing account is left untouched, so re-seeding never resets a
* password that was changed from the panel.
*/
class AdminUserSeeder extends Seeder
{
public function run(): void
{
$email = config('app.admin.email');
if (User::query()->where('email', $email)->exists()) {
$this->command?->info("Admin {$email} sudah ada, dilewati.");
return;
}
$password = config('app.admin.password') ?: Str::password(16, symbols: false);
$user = User::query()->create([
'name' => config('app.admin.name'),
'email' => $email,
'role' => UserRole::Admin,
'password' => $password,
]);
$user->forceFill(['email_verified_at' => now()])->save();
if (config('app.admin.password')) {
$this->command?->info("Admin {$email} dibuat dengan ADMIN_PASSWORD dari .env.");
} else {
$this->command?->warn("Admin {$email} dibuat. Password (simpan sekarang, hanya ditampilkan sekali): {$password}");
}
}
}