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
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.
73 lines
2.2 KiB
PHP
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,
|
|
]);
|
|
}
|
|
}
|