diff --git a/user/externallib.php b/user/externallib.php index 6a10ced0268..70f428b8b1c 100644 --- a/user/externallib.php +++ b/user/externallib.php @@ -83,6 +83,7 @@ class moodle_user_external extends external_api { */ public static function create_users($users) { global $CFG, $DB; + require_once($CFG->dirroot."/lib/weblib.php"); require_once($CFG->dirroot."/user/lib.php"); require_once($CFG->dirroot."/user/profile/lib.php"); //required for customfields related function //TODO: move the functions somewhere else as @@ -131,18 +132,20 @@ class moodle_user_external extends external_api { throw new invalid_parameter_exception('Invalid theme: '.$user['theme']); } - // make sure there is no data loss during truncation - $truncated = truncate_userinfo($user); - foreach ($truncated as $key=>$value) { - if ($truncated[$key] !== $user[$key]) { - throw new invalid_parameter_exception('Property: '.$key.' is too long: '.$user[$key]); - } - } - $user['confirmed'] = true; $user['mnethostid'] = $CFG->mnet_localhost_id; $user['id'] = user_create_user($user); + // Start of user info validation. + // Lets make sure we validate current user info as handled by current GUI. see user/editadvanced_form.php function validation() + if (!validate_email($user['email'])) { + throw new invalid_parameter_exception('Email address is invalid: '.$user['email']); + } else if ($DB->record_exists('user', array('email'=>$user['email'], 'mnethostid'=>$user['mnethostid']))) { + throw new invalid_parameter_exception('Email address already exists: '.$user['email']); + } + // End of user info validation. + + // custom fields if(!empty($user['customfields'])) { foreach($user['customfields'] as $customfield) {