|
|
@ -7,6 +7,8 @@ |
|
|
|
* @package chamilo.admin |
|
|
|
* @package chamilo.admin |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
use Ddeboer\DataImport\Reader\CsvReader; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Validate the imported data. |
|
|
|
* Validate the imported data. |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -22,52 +24,35 @@ function validate_data($users) |
|
|
|
$errors = []; |
|
|
|
$errors = []; |
|
|
|
$usernames = []; |
|
|
|
$usernames = []; |
|
|
|
|
|
|
|
|
|
|
|
// 1. Check if mandatory fields are set. |
|
|
|
|
|
|
|
$mandatory_fields = ['LastName', 'FirstName']; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (api_get_setting('registration', 'email') == 'true') { |
|
|
|
|
|
|
|
$mandatory_fields[] = 'Email'; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
$classExistList = []; |
|
|
|
$classExistList = []; |
|
|
|
$usergroup = new UserGroup(); |
|
|
|
$usergroup = new UserGroup(); |
|
|
|
|
|
|
|
|
|
|
|
foreach ($users as $user) { |
|
|
|
foreach ($users as $user) { |
|
|
|
foreach ($mandatory_fields as $field) { |
|
|
|
|
|
|
|
if (isset($user[$field])) { |
|
|
|
|
|
|
|
if (empty($user[$field])) { |
|
|
|
|
|
|
|
$user['error'] = get_lang($field.'Mandatory'); |
|
|
|
|
|
|
|
$errors[] = $user; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 2. Check username, first, check whether it is empty. |
|
|
|
// 2. Check username, first, check whether it is empty. |
|
|
|
|
|
|
|
|
|
|
|
if (isset($user['NewUserName'])) { |
|
|
|
if (isset($user['NewUserName'])) { |
|
|
|
if (!UserManager::is_username_empty($user['NewUserName'])) { |
|
|
|
if (!UserManager::is_username_empty($user['NewUserName'])) { |
|
|
|
// 2.1. Check whether username is too long. |
|
|
|
// 2.1. Check whether username is too long. |
|
|
|
if (UserManager::is_username_too_long($user['NewUserName'])) { |
|
|
|
if (UserManager::is_username_too_long($user['NewUserName'])) { |
|
|
|
$user['error'] = get_lang('UserNameTooLong'); |
|
|
|
$errors[$user['UserName']][] = get_lang('UserNameTooLong'); |
|
|
|
$errors[] = $user; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
// 2.2. Check whether the username was used twice in import file. |
|
|
|
// 2.2. Check whether the username was used twice in import file. |
|
|
|
if (isset($usernames[$user['NewUserName']])) { |
|
|
|
if (isset($usernames[$user['NewUserName']])) { |
|
|
|
$user['error'] = get_lang('UserNameUsedTwice'); |
|
|
|
$errors[$user['UserName']][] = get_lang('UserNameUsedTwice'); |
|
|
|
$errors[] = $user; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
$usernames[$user['UserName']] = 1; |
|
|
|
$usernames[$user['UserName']] = 1; |
|
|
|
// 2.3. Check whether username is allready occupied. |
|
|
|
// 2.3. Check whether username is allready occupied. |
|
|
|
if (!UserManager::is_username_available($user['NewUserName']) && $user['NewUserName'] != $user['UserName']) { |
|
|
|
if (!UserManager::is_username_available($user['NewUserName']) && |
|
|
|
$user['error'] = get_lang('UserNameNotAvailable'); |
|
|
|
$user['NewUserName'] != $user['UserName'] |
|
|
|
$errors[] = $user; |
|
|
|
) { |
|
|
|
|
|
|
|
$errors[$user['UserName']][] = get_lang('UserNameNotAvailable'); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 3. Check status. |
|
|
|
// 3. Check status. |
|
|
|
if (isset($user['Status']) && !api_status_exists($user['Status'])) { |
|
|
|
if (isset($user['Status']) && !api_status_exists($user['Status'])) { |
|
|
|
$user['error'] = get_lang('WrongStatus'); |
|
|
|
$errors[$user['UserName']][] = get_lang('WrongStatus'); |
|
|
|
$errors[] = $user; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 4. Check ClassId |
|
|
|
// 4. Check ClassId |
|
|
@ -79,8 +64,7 @@ function validate_data($users) |
|
|
|
} |
|
|
|
} |
|
|
|
$info = $usergroup->get($id); |
|
|
|
$info = $usergroup->get($id); |
|
|
|
if (empty($info)) { |
|
|
|
if (empty($info)) { |
|
|
|
$user['error'] = sprintf(get_lang('ClassIdDoesntExists'), $id); |
|
|
|
$errors[$user['UserName']][] = sprintf(get_lang('ClassIdDoesntExists'), $id); |
|
|
|
$errors[] = $user; |
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
$classExistList[] = $info['id']; |
|
|
|
$classExistList[] = $info['id']; |
|
|
|
} |
|
|
|
} |
|
|
@ -90,8 +74,7 @@ function validate_data($users) |
|
|
|
// 5. Check authentication source |
|
|
|
// 5. Check authentication source |
|
|
|
if (!empty($user['AuthSource'])) { |
|
|
|
if (!empty($user['AuthSource'])) { |
|
|
|
if (!in_array($user['AuthSource'], $defined_auth_sources)) { |
|
|
|
if (!in_array($user['AuthSource'], $defined_auth_sources)) { |
|
|
|
$user['error'] = get_lang('AuthSourceNotAvailable'); |
|
|
|
$errors[$user['UserName']][] = get_lang('AuthSourceNotAvailable'); |
|
|
|
$errors[] = $user; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -99,74 +82,53 @@ function validate_data($users) |
|
|
|
return $errors; |
|
|
|
return $errors; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Add missing user-information (which isn't required, like password, username etc). |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
function complete_missing_data($user) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
global $purification_option_for_usernames; |
|
|
|
|
|
|
|
// 1. Create a username if necessary. |
|
|
|
|
|
|
|
if (UserManager::is_username_empty($user['UserName'])) { |
|
|
|
|
|
|
|
$user['UserName'] = UserManager::create_unique_username($user['FirstName'], $user['LastName']); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
$user['UserName'] = UserManager::purify_username($user['UserName'], $purification_option_for_usernames); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 2. Generate a password if necessary. |
|
|
|
|
|
|
|
if (empty($user['Password'])) { |
|
|
|
|
|
|
|
$user['Password'] = api_generate_password(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 3. Set status if not allready set. |
|
|
|
|
|
|
|
if (empty($user['Status'])) { |
|
|
|
|
|
|
|
$user['Status'] = 'user'; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// 4. Set authsource if not allready set. |
|
|
|
|
|
|
|
if (empty($user['AuthSource'])) { |
|
|
|
|
|
|
|
$user['AuthSource'] = PLATFORM_AUTH_SOURCE; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return $user; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Update users from the imported data. |
|
|
|
* Update users from the imported data. |
|
|
|
* |
|
|
|
* |
|
|
|
* @param array $users List of users |
|
|
|
* @param array $users List of users. |
|
|
|
|
|
|
|
* @param bool $resetPassword Optional. |
|
|
|
* |
|
|
|
* |
|
|
|
* @return false|null |
|
|
|
* @return false|null |
|
|
|
* |
|
|
|
|
|
|
|
* @uses \global variable $inserted_in_course, which returns the list of courses the user was inserted in |
|
|
|
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function updateUsers($users) |
|
|
|
function updateUsers($users, $resetPassword = false) |
|
|
|
{ |
|
|
|
{ |
|
|
|
global $insertedIn_course; |
|
|
|
|
|
|
|
// Not all scripts declare the $inserted_in_course array (although they should). |
|
|
|
|
|
|
|
if (!isset($inserted_in_course)) { |
|
|
|
|
|
|
|
$inserted_in_course = []; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
$usergroup = new UserGroup(); |
|
|
|
$usergroup = new UserGroup(); |
|
|
|
$send_mail = !empty($_POST['sendMail']) ? true : false; |
|
|
|
|
|
|
|
if (is_array($users)) { |
|
|
|
if (is_array($users)) { |
|
|
|
foreach ($users as $user) { |
|
|
|
foreach ($users as $user) { |
|
|
|
$user = complete_missing_data($user); |
|
|
|
if (isset($user['Status'])) { |
|
|
|
$user['Status'] = api_status_key($user['Status']); |
|
|
|
$user['Status'] = api_status_key($user['Status']); |
|
|
|
$userName = $user['UserName']; |
|
|
|
|
|
|
|
$userInfo = api_get_user_info_from_username($userName); |
|
|
|
|
|
|
|
$user_id = $userInfo['user_id']; |
|
|
|
|
|
|
|
if ($user_id == 0) { |
|
|
|
|
|
|
|
return false; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$userInfo = api_get_user_info_from_username($user['UserName']); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (empty($userInfo)) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$user_id = $userInfo['user_id']; |
|
|
|
|
|
|
|
|
|
|
|
$firstName = isset($user['FirstName']) ? $user['FirstName'] : $userInfo['firstname']; |
|
|
|
$firstName = isset($user['FirstName']) ? $user['FirstName'] : $userInfo['firstname']; |
|
|
|
$lastName = isset($user['LastName']) ? $user['LastName'] : $userInfo['lastname']; |
|
|
|
$lastName = isset($user['LastName']) ? $user['LastName'] : $userInfo['lastname']; |
|
|
|
$userName = isset($user['NewUserName']) ? $user['NewUserName'] : $userInfo['username']; |
|
|
|
$userName = isset($user['NewUserName']) ? $user['NewUserName'] : $userInfo['username']; |
|
|
|
$changePassMethod = 0; |
|
|
|
$changePassMethod = 0; |
|
|
|
$password = isset($user['Password']) ? $user['Password'] : ''; |
|
|
|
$password = null; |
|
|
|
if (!empty($password)) { |
|
|
|
$authSource = $userInfo['auth_source']; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($resetPassword) { |
|
|
|
|
|
|
|
$changePassMethod = 1; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
if (isset($user['Password'])) { |
|
|
|
$changePassMethod = 2; |
|
|
|
$changePassMethod = 2; |
|
|
|
|
|
|
|
$password = $user['Password']; |
|
|
|
} |
|
|
|
} |
|
|
|
$authSource = isset($user['AuthSource']) ? $user['AuthSource'] : ''; |
|
|
|
|
|
|
|
if ($changePassMethod === 2 && !empty($authSource) && $authSource != $userInfo['auth_source']) { |
|
|
|
if (isset($user['AuthSource']) && $user['AuthSource'] != $authSource) { |
|
|
|
|
|
|
|
$authSource = $user['AuthSource']; |
|
|
|
$changePassMethod = 3; |
|
|
|
$changePassMethod = 3; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$email = isset($user['Email']) ? $user['Email'] : $userInfo['email']; |
|
|
|
$email = isset($user['Email']) ? $user['Email'] : $userInfo['email']; |
|
|
|
$status = isset($user['Status']) ? $user['Status'] : $userInfo['status']; |
|
|
|
$status = isset($user['Status']) ? $user['Status'] : $userInfo['status']; |
|
|
|
$officialCode = isset($user['OfficialCode']) ? $user['OfficialCode'] : $userInfo['official_code']; |
|
|
|
$officialCode = isset($user['OfficialCode']) ? $user['OfficialCode'] : $userInfo['official_code']; |
|
|
@ -197,7 +159,7 @@ function updateUsers($users) |
|
|
|
null, |
|
|
|
null, |
|
|
|
$language, |
|
|
|
$language, |
|
|
|
'', |
|
|
|
'', |
|
|
|
'', |
|
|
|
false, |
|
|
|
$changePassMethod |
|
|
|
$changePassMethod |
|
|
|
); |
|
|
|
); |
|
|
|
if (!empty($user['Courses']) && !is_array($user['Courses'])) { |
|
|
|
if (!empty($user['Courses']) && !is_array($user['Courses'])) { |
|
|
@ -208,7 +170,6 @@ function updateUsers($users) |
|
|
|
if (CourseManager::course_exists($course)) { |
|
|
|
if (CourseManager::course_exists($course)) { |
|
|
|
CourseManager::subscribeUser($user_id, $course, $user['Status']); |
|
|
|
CourseManager::subscribeUser($user_id, $course, $user['Status']); |
|
|
|
$course_info = CourseManager::get_course_information($course); |
|
|
|
$course_info = CourseManager::get_course_information($course); |
|
|
|
$inserted_in_course[$course] = $course_info['title']; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -247,16 +208,28 @@ function updateUsers($users) |
|
|
|
* |
|
|
|
* |
|
|
|
* @param string $file Path to the CSV-file |
|
|
|
* @param string $file Path to the CSV-file |
|
|
|
* |
|
|
|
* |
|
|
|
|
|
|
|
* @throws Exception |
|
|
|
|
|
|
|
* |
|
|
|
* @return array All userinformation read from the file |
|
|
|
* @return array All userinformation read from the file |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
function parse_csv_data($file) |
|
|
|
function parse_csv_data($file) |
|
|
|
{ |
|
|
|
{ |
|
|
|
$users = Import :: csvToArray($file); |
|
|
|
$file = new SplFileObject($file); |
|
|
|
foreach ($users as $index => $user) { |
|
|
|
$csv = new CsvReader($file, ';'); |
|
|
|
if (isset($user['Courses'])) { |
|
|
|
$csv->setHeaderRowNumber(0); |
|
|
|
$user['Courses'] = explode('|', trim($user['Courses'])); |
|
|
|
|
|
|
|
|
|
|
|
if (!in_array('UserName', $csv->getColumnHeaders())) { |
|
|
|
|
|
|
|
throw new Exception(get_lang("UserNameMandatory")); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$users = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($csv as $row) { |
|
|
|
|
|
|
|
if (isset($row['Courses'])) { |
|
|
|
|
|
|
|
$row['Courses'] = explode('|', trim($row['Courses'])); |
|
|
|
} |
|
|
|
} |
|
|
|
$users[$index] = $user; |
|
|
|
|
|
|
|
|
|
|
|
$users[] = $row; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return $users; |
|
|
|
return $users; |
|
|
@ -297,106 +270,86 @@ $interbreadcrumb[] = ["url" => 'index.php', "name" => get_lang('PlatformAdmin')] |
|
|
|
|
|
|
|
|
|
|
|
set_time_limit(0); |
|
|
|
set_time_limit(0); |
|
|
|
$extra_fields = UserManager::get_extra_fields(0, 0, 5, 'ASC', true); |
|
|
|
$extra_fields = UserManager::get_extra_fields(0, 0, 5, 'ASC', true); |
|
|
|
$user_id_error = []; |
|
|
|
|
|
|
|
$error_message = ''; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (isset($_POST['formSent']) && $_POST['formSent'] && $_FILES['import_file']['size'] !== 0) { |
|
|
|
$form = new FormValidator('user_update_import', 'post', api_get_self()); |
|
|
|
$file_type = 'csv'; |
|
|
|
$form->addElement('header', $tool_name); |
|
|
|
|
|
|
|
$form->addFile('import_file', get_lang('ImportFileLocation'), ['accept' => 'text/csv', 'id' => 'import_file']); |
|
|
|
|
|
|
|
$form->addCheckBox('reset_password', '', get_lang('AutoGeneratePassword')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($form->validate() && Security::check_token('post')) { |
|
|
|
Security::clear_token(); |
|
|
|
Security::clear_token(); |
|
|
|
$tok = Security::get_token(); |
|
|
|
|
|
|
|
$allowed_file_mimetype = ['csv', 'xml']; |
|
|
|
|
|
|
|
$error_kind_file = false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$uploadInfo = pathinfo($_FILES['import_file']['name']); |
|
|
|
$formValues = $form->exportValues(); |
|
|
|
$ext_import_file = $uploadInfo['extension']; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (in_array($ext_import_file, $allowed_file_mimetype)) { |
|
|
|
if (empty($_FILES['import_file']) || empty($_FILES['import_file']['size'])) { |
|
|
|
if (strcmp($file_type, 'csv') === 0 && $ext_import_file == $allowed_file_mimetype[0]) { |
|
|
|
header('Location: '.api_get_self()); |
|
|
|
$users = parse_csv_data($_FILES['import_file']['tmp_name']); |
|
|
|
exit; |
|
|
|
$errors = validate_data($users); |
|
|
|
|
|
|
|
$error_kind_file = false; |
|
|
|
|
|
|
|
} elseif (strcmp($file_type, 'xml') === 0 && $ext_import_file == $allowed_file_mimetype[1]) { |
|
|
|
|
|
|
|
$users = parse_xml_data($_FILES['import_file']['tmp_name']); |
|
|
|
|
|
|
|
$errors = validate_data($users); |
|
|
|
|
|
|
|
$error_kind_file = false; |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
$error_kind_file = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
$error_kind_file = true; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// List user id with error. |
|
|
|
$uploadInfo = pathinfo($_FILES['import_file']['name']); |
|
|
|
$users_to_insert = $user_id_error = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (is_array($errors)) { |
|
|
|
if ($uploadInfo['extension'] !== 'csv') { |
|
|
|
foreach ($errors as $my_errors) { |
|
|
|
Display::addFlash( |
|
|
|
$user_id_error[] = $my_errors['UserName']; |
|
|
|
Display::return_message(get_lang('YouMustImportAFileAccordingToSelectedOption'), 'error') |
|
|
|
} |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
header('Location: '.api_get_self()); |
|
|
|
|
|
|
|
exit; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (is_array($users)) { |
|
|
|
try { |
|
|
|
foreach ($users as $my_user) { |
|
|
|
$users = parse_csv_data($_FILES['import_file']['tmp_name']); |
|
|
|
if (!in_array($my_user['UserName'], $user_id_error)) { |
|
|
|
} catch (Exception $exception) { |
|
|
|
$users_to_insert[] = $my_user; |
|
|
|
Display::addFlash( |
|
|
|
|
|
|
|
Display::return_message($exception->getMessage(), 'error') |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
header('Location: '.api_get_self()); |
|
|
|
|
|
|
|
exit; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$errors = validate_data($users); |
|
|
|
|
|
|
|
$errorUsers = array_keys($errors); |
|
|
|
|
|
|
|
$usersToUpdate = []; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($users as $user) { |
|
|
|
|
|
|
|
if (!in_array($user['UserName'], $errorUsers)) { |
|
|
|
|
|
|
|
$usersToUpdate[] = $user; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$inserted_in_course = []; |
|
|
|
updateUsers($usersToUpdate, isset($formValues['reset_password'])); |
|
|
|
if (strcmp($file_type, 'csv') === 0) { |
|
|
|
|
|
|
|
updateUsers($users_to_insert); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (count($errors) > 0) { |
|
|
|
if (empty($errors)) { |
|
|
|
$see_message_import = get_lang('FileImportedJustUsersThatAreNotRegistered'); |
|
|
|
Display::addFlash( |
|
|
|
|
|
|
|
Display::return_message(get_lang('FileImported'), 'success') |
|
|
|
|
|
|
|
); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
$see_message_import = get_lang('FileImported'); |
|
|
|
$warningMessage = ''; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$warning_message = ''; |
|
|
|
foreach ($errors as $errorUsername => $errorUserMessages) { |
|
|
|
if (count($errors) != 0) { |
|
|
|
$warningMessage .= "<strong>$errorUsername</strong>"; |
|
|
|
$warning_message = '<ul>'; |
|
|
|
$warningMessage .= '<ul><li>'.implode('</li><li>', $errorUserMessages).'</li></ul>'; |
|
|
|
foreach ($errors as $index => $error_user) { |
|
|
|
|
|
|
|
$warning_message .= '<li><b>'.$error_user['error'].'</b>: '; |
|
|
|
|
|
|
|
$warning_message .= |
|
|
|
|
|
|
|
'<strong>'.$error_user['UserName'].'</strong> ('. |
|
|
|
|
|
|
|
api_get_person_name($error_user['FirstName'], $error_user['LastName']).')'; |
|
|
|
|
|
|
|
$warning_message .= '</li>'; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
$warning_message .= '</ul>'; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// if the warning message is too long then we display the warning message trough a session |
|
|
|
Display::addFlash( |
|
|
|
if (!empty($warning_message)) { |
|
|
|
Display::return_message(get_lang('FileImportedJustUsersThatAreNotRegistered'), 'warning') |
|
|
|
Display::addFlash(Display::return_message($warning_message, 'warning', false)); |
|
|
|
); |
|
|
|
|
|
|
|
Display::addFlash( |
|
|
|
|
|
|
|
Display::return_message($warningMessage, 'warning', false) |
|
|
|
|
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ($error_kind_file) { |
|
|
|
header('Location: '.api_get_self()); |
|
|
|
Display::addFlash(Display::return_message(get_lang('YouMustImportAFileAccordingToSelectedOption'), 'error', false)); |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
header('Location: '.api_get_path(WEB_CODE_PATH).'admin/user_list.php?sec_token='.$tok); |
|
|
|
|
|
|
|
exit; |
|
|
|
exit; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Display::display_header($tool_name); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!empty($error_message)) { |
|
|
|
|
|
|
|
echo Display::return_message($error_message, 'error'); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$form = new FormValidator('user_update_import', 'post', api_get_self()); |
|
|
|
Display::display_header($tool_name); |
|
|
|
$form->addElement('header', $tool_name); |
|
|
|
|
|
|
|
$form->addElement('hidden', 'formSent'); |
|
|
|
|
|
|
|
$form->addElement('file', 'import_file', get_lang('ImportFileLocation')); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$group = []; |
|
|
|
$token = Security::get_token(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$form->addHidden('sec_token', $token); |
|
|
|
$form->addButtonImport(get_lang('Import')); |
|
|
|
$form->addButtonImport(get_lang('Import')); |
|
|
|
$defaults['formSent'] = 1; |
|
|
|
|
|
|
|
$defaults['sendMail'] = 0; |
|
|
|
|
|
|
|
$defaults['file_type'] = 'csv'; |
|
|
|
|
|
|
|
$form->setDefaults($defaults); |
|
|
|
|
|
|
|
$form->display(); |
|
|
|
$form->display(); |
|
|
|
|
|
|
|
|
|
|
|
$list = []; |
|
|
|
$list = []; |
|
|
|