From 08587c65c3f6c8eca211e404eef4d8e4981df0fa Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Tue, 1 Aug 2023 13:08:55 +0200 Subject: [PATCH] Admin: User import: Fix off-by-one issue caused by re-using the $user variable, previously set by reference - refs #4761 Co-authored-by: Juan Cortizas Ponte <124381395+juancpbinario@users.noreply.github.com> --- main/admin/user_import.php | 51 ++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/main/admin/user_import.php b/main/admin/user_import.php index 999b9f9ae9..04bbf2eeac 100644 --- a/main/admin/user_import.php +++ b/main/admin/user_import.php @@ -408,55 +408,58 @@ function save_data( $csv_content = []; $csv_row = $header; $csv_content[] = $csv_row; - foreach ($userSaved as $user) { + foreach ($userSaved as $userItem) { $csv_row = []; - $csv_row[] = isset($user['id']) ? $user['id'] : ''; - $csv_row[] = isset($user['FirstName']) ? $user['FirstName'] : ''; - $csv_row[] = isset($user['LastName']) ? $user['LastName'] : ''; - $csv_row[] = isset($user['Status']) ? $user['Status'] : ''; - $csv_row[] = isset($user['Email']) ? $user['Email'] : ''; - $csv_row[] = isset($user['UserName']) ? $user['UserName'] : ''; - $csv_row[] = isset($user['message']) ? strip_tags($user['message']) : ''; + $csv_row[] = isset($userItem['id']) ? $userItem['id'] : ''; + $csv_row[] = isset($userItem['FirstName']) ? $userItem['FirstName'] : ''; + $csv_row[] = isset($userItem['LastName']) ? $userItem['LastName'] : ''; + $csv_row[] = isset($userItem['Status']) ? $userItem['Status'] : ''; + $csv_row[] = isset($userItem['Email']) ? $userItem['Email'] : ''; + $csv_row[] = isset($userItem['UserName']) ? $userItem['UserName'] : ''; + $csv_row[] = isset($userItem['message']) ? strip_tags($userItem['message']) : ''; $csv_content[] = $csv_row; } saveCsvFile($csv_content, $targetFolder.'user_success_'.count($userSaved)); } + unset($userItem); if (count($userError) != 0) { // Save user with error $csv_content = []; $csv_row = $header; $csv_content[] = $csv_row; - foreach ($userError as $user) { + foreach ($userError as $userItem) { $csv_row = []; - $csv_row[] = isset($user['id']) ? $user['id'] : ''; - $csv_row[] = isset($user['FirstName']) ? $user['FirstName'] : ''; - $csv_row[] = isset($user['LastName']) ? $user['LastName'] : ''; - $csv_row[] = isset($user['Status']) ? $user['Status'] : '-'; - $csv_row[] = isset($user['Email']) ? $user['Email'] : ''; - $csv_row[] = isset($user['UserName']) ? $user['UserName'] : ''; - $csv_row[] = isset($user['message']) ? strip_tags($user['message']) : ''; + $csv_row[] = isset($userItem['id']) ? $userItem['id'] : ''; + $csv_row[] = isset($userItem['FirstName']) ? $userItem['FirstName'] : ''; + $csv_row[] = isset($userItem['LastName']) ? $userItem['LastName'] : ''; + $csv_row[] = isset($userItem['Status']) ? $userItem['Status'] : '-'; + $csv_row[] = isset($userItem['Email']) ? $userItem['Email'] : ''; + $csv_row[] = isset($userItem['UserName']) ? $userItem['UserName'] : ''; + $csv_row[] = isset($userItem['message']) ? strip_tags($userItem['message']) : ''; $csv_content[] = $csv_row; } saveCsvFile($csv_content, $targetFolder.'user_error_'.count($userError)); } + unset($userItem); if (count($userWarning) != 0) { // Save user with warning $csv_content = []; $csv_row = $header; $csv_content[] = $csv_row; - foreach ($userWarning as $user) { + foreach ($userWarning as $userItem) { $csv_row = []; - $csv_row[] = isset($user['id']) ? $user['id'] : ''; - $csv_row[] = isset($user['FirstName']) ? $user['FirstName'] : ''; - $csv_row[] = isset($user['LastName']) ? $user['LastName'] : ''; - $csv_row[] = isset($user['Status']) ? $user['Status'] : ''; - $csv_row[] = isset($user['Email']) ? $user['Email'] : ''; - $csv_row[] = isset($user['UserName']) ? $user['UserName'] : ''; - $csv_row[] = isset($user['message']) ? strip_tags($user['message']) : ''; + $csv_row[] = isset($userItem['id']) ? $userItem['id'] : ''; + $csv_row[] = isset($userItem['FirstName']) ? $userItem['FirstName'] : ''; + $csv_row[] = isset($userItem['LastName']) ? $userItem['LastName'] : ''; + $csv_row[] = isset($userItem['Status']) ? $userItem['Status'] : ''; + $csv_row[] = isset($userItem['Email']) ? $userItem['Email'] : ''; + $csv_row[] = isset($userItem['UserName']) ? $userItem['UserName'] : ''; + $csv_row[] = isset($userItem['message']) ? strip_tags($userItem['message']) : ''; $csv_content[] = $csv_row; } saveCsvFile($csv_content, $targetFolder.'user_warning_'.count($userWarning)); } + unset($userItem); } return $users;