/** * Validates imported data. */ function validate_data($users) { global $defined_auth_sources; $errors = array(); $usernames = array(); if (is_array($users)) { foreach ($users as $index => $user) { // 1. Check whether mandatory fields have been set. $mandatory_fields = array('LastName', 'FirstName'); if (api_get_setting('registration', 'email') == 'true') { $mandatory_fields[] = 'Email'; } foreach ($mandatory_fields as $key => $field) { if (!isset($user[$field]) || strlen($user[$field]) == 0) { $user['error'] = get_lang($field . 'Mandatory'); $errors[] = $user; } } // 2. Check username. if (!UserManager::is_username_empty($user['UserName'])) { // 2.1. Check whether username was used twice in the import file. if (isset($usernames[$user['UserName']])) { $user['error'] = get_lang('UserNameUsedTwice'); $errors[] = $user; } $usernames[$user['UserName']] = 1; // 2.2. Check whether username is allready in use in database. if (!UserManager::is_username_available($user['UserName'])) { $user['error'] = get_lang('UserNameNotAvailable'); $errors[] = $user; } // 2.3. Check whether username is too long. if (UserManager::is_username_too_long($user['UserName'])) { $user['error'] = get_lang('UserNameTooLong'); $errors[] = $user; } } // 3. Check status. if (isset($user['Status']) && !api_status_exists($user['Status'])) { $user['error'] = get_lang('WrongStatus'); $errors[] = $user; } // 4. Check classname. if (isset($user['ClassName']) && strlen($user['ClassName']) != 0) { if (!ClassManager::class_name_exists($user['ClassName'])) { $user['error'] = get_lang('ClassNameNotAvailable'); $errors[] = $user; } } // 5. Check authentication source. if (isset($user['AuthSource']) && strlen($user['AuthSource']) != 0) { if (!in_array($user['AuthSource'], $defined_auth_sources)) { $user['error'] = get_lang('AuthSourceNotAvailable'); $errors[] = $user; } } } } return $errors; }
function validate_data($users) { global $defined_auth_sources; $errors = array(); $usernames = array(); // 1. Check if mandatory fields are set. $mandatory_fields = array('LastName', 'FirstName'); if (api_get_setting('registration', 'email') == 'true') { $mandatory_fields[] = 'Email'; } $classExistList = array(); $usergroup = new UserGroup(); 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. if (isset($user['NewUserName'])) { if (!UserManager::is_username_empty($user['NewUserName'])) { // 2.1. Check whether username is too long. if (UserManager::is_username_too_long($user['NewUserName'])) { $user['error'] = get_lang('UserNameTooLong'); $errors[] = $user; } // 2.2. Check whether the username was used twice in import file. if (isset($usernames[$user['NewUserName']])) { $user['error'] = get_lang('UserNameUsedTwice'); $errors[] = $user; } $usernames[$user['UserName']] = 1; // 2.3. Check whether username is allready occupied. if (!UserManager::is_username_available($user['NewUserName']) && $user['NewUserName'] != $user['UserName']) { $user['error'] = get_lang('UserNameNotAvailable'); $errors[] = $user; } } } // 3. Check status. if (isset($user['Status']) && !api_status_exists($user['Status'])) { $user['error'] = get_lang('WrongStatus'); $errors[] = $user; } // 4. Check ClassId if (!empty($user['ClassId'])) { $classId = explode('|', trim($user['ClassId'])); foreach ($classId as $id) { if (in_array($id, $classExistList)) { continue; } $info = $usergroup->get($id); if (empty($info)) { $user['error'] = sprintf(get_lang('ClassIdDoesntExists'), $id); $errors[] = $user; } else { $classExistList[] = $info['id']; } } } // 5. Check authentication source if (!empty($user['AuthSource'])) { if (!in_array($user['AuthSource'], $defined_auth_sources)) { $user['error'] = get_lang('AuthSourceNotAvailable'); $errors[] = $user; } } } return $errors; }