From 70a752c0684e31ea25c644b076644334a192f88a Mon Sep 17 00:00:00 2001 From: Aparup Banerjee Date: Tue, 21 Feb 2012 14:59:21 +0800 Subject: [PATCH 1/2] MDL-25027 Web Service: removed user info(firstname,lastname) truncation for GUI-WS consistency. Currently there is no validation on user info (firstname/lastname) in user/editadvanced_form.php --- user/externallib.php | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/user/externallib.php b/user/externallib.php index 6a10ced0268..9ab34a9a6f5 100644 --- a/user/externallib.php +++ b/user/externallib.php @@ -131,13 +131,10 @@ 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]); - } - } + // 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() + // ok, there is no validation currently. + // End of user info validation. $user['confirmed'] = true; $user['mnethostid'] = $CFG->mnet_localhost_id; From 12166ca08d3620a72d472e48a6c8b037e811f2f1 Mon Sep 17 00:00:00 2001 From: Aparup Banerjee Date: Tue, 21 Feb 2012 15:23:57 +0800 Subject: [PATCH 2/2] MDL-25027 Web Service: added email validation to create_users() - just like GUI --- user/externallib.php | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/user/externallib.php b/user/externallib.php index 9ab34a9a6f5..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,15 +132,20 @@ class moodle_user_external extends external_api { throw new invalid_parameter_exception('Invalid theme: '.$user['theme']); } - // 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() - // ok, there is no validation currently. - // End of user info validation. - $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) {