Files
travel/database/seeders/DatabaseSeeder.php
Tim Basten 66316328bb
All checks were successful
linter / quality (pull_request) Successful in 1m27s
security / Dependency Audit (pull_request) Successful in 2m20s
security / Static Analysis (pull_request) Successful in 1m50s
tests / ci (8.4) (pull_request) Successful in 1m33s
tests / ci (8.5) (pull_request) Successful in 2m5s
Fix seeder emails to match LDAP mail attributes
Seeded user emails were using example.com domains which don't match
the LDAP mail attributes (travel.local). When users log in via LDAP,
LdapRecord syncs by email — a mismatch caused new DB records to be
created without roles, preventing admin access to the Filament panel.
2026-03-06 07:11:08 +00:00

73 lines
2.2 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\ApprovalStep;
use App\Models\ApprovalWorkflow;
use App\Models\TravelRequest;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
// Create roles
$this->call(RoleSeeder::class);
// Create admin user — email matches LDAP mail attribute
$admin = User::factory()->create([
'name' => 'Administrator',
'email' => 'admin@travel.local',
'username' => 'admin',
'password' => Hash::make('password'),
]);
$admin->assignRole('administrator');
// Create a travel approver — email matches LDAP mail attribute
$approver = User::factory()->create([
'name' => 'Travel Approver',
'email' => 'approver@travel.local',
'username' => 'approver',
'password' => Hash::make('password'),
]);
$approver->assignRole('travel_approver');
// Create a staff user — email matches LDAP mail attribute
$staff = User::factory()->create([
'name' => 'Staff Member',
'email' => 'staff@travel.local',
'username' => 'staff',
'password' => Hash::make('password'),
]);
$staff->assignRole('staff');
// Create default approval workflow with 2 steps
$workflow = ApprovalWorkflow::create([
'name' => 'Standard Travel Approval',
'description' => 'Default two-step travel approval workflow',
'is_active' => true,
]);
ApprovalStep::create([
'workflow_id' => $workflow->id,
'order' => 1,
'name' => 'Travel Approver Review',
'role' => 'travel_approver',
]);
ApprovalStep::create([
'workflow_id' => $workflow->id,
'order' => 2,
'name' => 'Administrator Final Approval',
'role' => 'administrator',
]);
// Create sample travel requests for staff
TravelRequest::factory(3)->create([
'user_id' => $staff->id,
]);
}
}