Skip to content

Commit 8f76a30

Browse files
committed
Admin: Make user CSV/XML import stricter on unique e-mails by detecting same e-mails in the uploaded file
1 parent e5b9202 commit 8f76a30

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

main/admin/user_import.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ function validate_data($users, $checkUniqueEmail = false)
6868
{
6969
global $defined_auth_sources;
7070
$usernames = [];
71+
$previousMails = [];
7172

7273
// 1. Check if mandatory fields are set.
7374
$mandatory_fields = ['LastName', 'FirstName'];
@@ -141,10 +142,17 @@ function validate_data($users, $checkUniqueEmail = false)
141142

142143
if ($checkUniqueEmail) {
143144
if (!empty($user['Email'])) {
144-
$userFromEmail = api_get_user_info_from_email($user['Email']);
145-
if (!empty($userFromEmail)) {
146-
$user['message'] .= Display::return_message(get_lang('EmailUsedTwice'), 'warning');
145+
if (in_array($user['Email'], $previousMails)) {
146+
$user['message'] .= Display::return_message(get_lang('EmailUsedTwiceInImportFile'), 'warning');
147147
$user['has_error'] = true;
148+
} else {
149+
$userFromEmail = api_get_user_info_from_email($user['Email']);
150+
if (!empty($userFromEmail)) {
151+
$user['message'] .= Display::return_message(get_lang('EmailUsedTwice'), 'warning');
152+
$user['has_error'] = true;
153+
} else {
154+
$previousMails[] = $user['Email'];
155+
}
148156
}
149157
}
150158
}
@@ -428,7 +436,6 @@ function save_data(
428436
$csv_row[] = isset($user['UserName']) ? $user['UserName'] : '';
429437
$csv_row[] = isset($user['message']) ? strip_tags($user['message']) : '';
430438
$csv_content[] = $csv_row;
431-
error_log(print_r($csv_row, 1));
432439
}
433440
saveCsvFile($csv_content, $targetFolder.'user_error_'.count($userError));
434441
}

0 commit comments

Comments
 (0)