create([ 'first_name' => 'PACS Agent', 'display_name' => 'PACS Agent', 'username' => StudiesSync::SYNC_AGENT, 'password' => bcrypt(fake()->password(20)), 'is_active' => false, ]); $usr->assignRole(Role::SystemAgent); $orgs = Organization::pluck('id', 'name'); $depts = Department::pluck('id', 'name'); $skip_first = true; $csv_file = fopen(base_path('database/data/users.csv'), 'r'); while (($data = fgetcsv($csv_file, 2 * 1024, ',')) !== false) { if ($skip_first) { $skip_first = false; continue; } $data = array_trim_strings($data, true); $role = Role::from(strtolower($data[8])); $org_id = $data[9] ? $orgs[$data[9]] : null; $dept_id = $data[10] ? $depts[$data[10]] : null; $image = $data[11] ? 'signatures/' . $data[11] : null; $user = User::create([ 'is_active' => true, 'display_name' => $data[0], 'prefix' => $data[1], 'first_name' => $data[2], 'last_name' => $data[3], 'signature_text' => $data[4], 'signature_image_path' => $image, 'username' => $data[5], 'email' => strtolower($data[6]), 'phone' => (string) $data[7], 'email_verified_at' => $data[6] ? now() : null, 'password' => bcrypt('password'), 'organization_id' => $org_id, 'department_id' => $dept_id, ]); $user->assignRole($role->value); } fclose($csv_file); $this->copySignatureImages(); } private function copySignatureImages() { $sourcePath = base_path('resources/report/signatures'); $dest = storage_path('app/public/signatures'); if (! is_dir($dest)) { mkdir($dest, 0755, true); } $files = scandir($sourcePath); foreach ($files as $file) { if (in_array($file, ['.', '..'])) { continue; } copy("{$sourcePath}/{$file}", "{$dest}/{$file}"); } } }