From 5d1017e11d06202fe0e396aba98216d4bc8d2821 Mon Sep 17 00:00:00 2001 From: Jerome Mouneyrac Date: Tue, 18 Oct 2011 12:57:33 +0800 Subject: [PATCH] MDL-29106 new web service naming convention --- course/externallib.php | 69 ++++- enrol/externallib.php | 546 +++++++++++++++++++++++++++-------- enrol/manual/db/services.php | 13 +- enrol/manual/externallib.php | 52 +++- enrol/manual/version.php | 2 +- files/externallib.php | 79 ++++- group/externallib.php | 240 ++++++++++++++- lib/db/services.php | 282 +++++++++++++++--- message/externallib.php | 49 +++- notes/externallib.php | 43 ++- user/externallib.php | 404 +++++++++++++------------- version.php | 2 +- webservice/externallib.php | 58 +++- 13 files changed, 1443 insertions(+), 396 deletions(-) diff --git a/course/externallib.php b/course/externallib.php index 7d9e6d62933..3724e303d85 100644 --- a/course/externallib.php +++ b/course/externallib.php @@ -28,7 +28,10 @@ defined('MOODLE_INTERNAL') || die; require_once("$CFG->libdir/externallib.php"); -class moodle_course_external extends external_api { +/** + * Course functions + */ +class core_course_external extends external_api { /** * Returns description of method parameters @@ -363,4 +366,68 @@ class moodle_course_external extends external_api { ); } +} + +/** + * Deprecated course functions + * @deprecated since Moodle 2.2 please use core_course_external instead + */ +class moodle_course_external extends external_api { + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_course_external::get_courses_parameters instead + * @return external_function_parameters + */ + public static function get_courses_parameters() { + return core_course_external::get_courses_parameters(); + } + + /** + * Get courses + * @param array $options + * @deprecated since Moodle 2.2 please use core_course_external::get_courses instead + * @return array + */ + public static function get_courses($options) { + return core_course_external::get_courses($options); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_course_external::get_courses_returns instead + * @return external_description + */ + public static function get_courses_returns() { + return core_course_external::get_courses_returns(); + } + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_course_external::create_courses_parameters instead + * @return external_function_parameters + */ + public static function create_courses_parameters() { + return core_course_external::create_courses_parameters(); + } + + /** + * Create courses + * @deprecated since Moodle 2.2 please use core_course_external::create_courses instead + * @param array $courses + * @return array courses (id and shortname only) + */ + public static function create_courses($courses) { + return core_course_external::create_courses($courses); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_course_external::create_courses_returns instead + * @return external_description + */ + public static function create_courses_returns() { + return core_course_external::create_courses_returns(); + } + } \ No newline at end of file diff --git a/enrol/externallib.php b/enrol/externallib.php index b11271c7312..6100fdd5631 100644 --- a/enrol/externallib.php +++ b/enrol/externallib.php @@ -31,12 +31,416 @@ defined('MOODLE_INTERNAL') || die(); require_once("$CFG->libdir/externallib.php"); +/** + * Enrol functions + */ +class core_enrol_external extends external_api { + /** + * Returns description of method parameters + * @return external_function_parameters + */ + public static function get_users_courses_parameters() { + return new external_function_parameters( + array( + 'userid' => new external_value(PARAM_INT, 'user id'), + ) + ); + } + + /** + * Get list of courses user is enrolled in (only active enrolments are returned). + * + * Please note the current user must be able to access the course, otherwise the course is not included. + * + * @param int $userid + * @return array of courses + */ + public static function get_users_courses($userid) { + global $USER; + + // Do basic automatic PARAM checks on incoming data, using params description + // If any problems are found then exceptions are thrown with helpful error messages + $params = self::validate_parameters(self::get_users_courses_parameters(), array('userid'=>$userid)); + + $courses = enrol_get_users_courses($params['userid'], true, 'id, shortname, fullname, idnumber, visible'); + $result = array(); + + foreach ($courses as $course) { + $context = get_context_instance(CONTEXT_COURSE, $course->id); + try { + self::validate_context($context); + } catch (Exception $e) { + // current user can not access this course, sorry we can not disclose who is enrolled in this course! + continue; + } + if ($userid != $USER->id and !has_capability('moodle/course:viewparticipants', $context)) { + // we need capability to view participants + continue; + } + + $result[] = array('id'=>$course->id, 'shortname'=>$course->shortname, 'fullname'=>$course->fullname, 'idnumber'=>$course->idnumber,'visible'=>$course->visible); + } + + return $result; + } + + /** + * Returns description of method result value + * @return external_description + */ + public static function get_users_courses_returns() { + return new external_multiple_structure( + new external_single_structure( + array( + 'id' => new external_value(PARAM_INT, 'id of course'), + 'shortname' => new external_value(PARAM_RAW, 'short name of course'), + 'fullname' => new external_value(PARAM_RAW, 'long name of course'), + 'idnumber' => new external_value(PARAM_RAW, 'id number of course'), + 'visible' => new external_value(PARAM_INT, '1 means visible, 0 means hidden course'), + ) + ) + ); + } + + + /** + * Returns description of method parameters + * @return external_function_parameters + */ + public static function get_enrolled_users_parameters() { + return new external_function_parameters( + array( + 'courseid' => new external_value(PARAM_INT, 'course id'), + 'options' => new external_multiple_structure( + new external_single_structure( + array( + 'name' => new external_value(PARAM_ALPHANUMEXT, 'option name'), + 'value' => new external_value(PARAM_RAW, 'option value') + ) + ), 'method options'), + ) + ); + } + + /** + * Get course participants details + * @param int $courseid course id + * @param array $options options { + * 'name' => option name + * 'value' => option value + * } + * @return array An array of users + */ + public static function get_enrolled_users($courseid, $options) { + global $CFG, $USER, $DB; + require_once($CFG->dirroot . "/user/lib.php"); + + $params = self::validate_parameters( + self::get_users_by_course_id_parameters(), + array( + 'courseid'=>$courseid, + 'options'=>$options + ) + ); + $withcapability = ''; + $groupid = 0; + $onlyactive = false; + foreach ($options as $option) { + switch ($option['name']) { + case 'withcapability': + $withcapability = $option['value']; + break; + case 'groupid': + $groupid = (int)$option['value']; + break; + case 'onlyactive': + $onlyactive = !empty($option['value']); + break; + } + } + + // to overwrite this parameter, you need role:review capability + if ($withcapability) { + require_capability('moodle/role:review', $coursecontext); + } + // need accessallgroups capability if you want to overwrite this option + if (!empty($groupid) && groups_is_member($groupid)) { + require_capability('moodle/site:accessallgroups', $context); + } + // to overwrite this option, you need course:enrolereview permission + if ($onlyactive) { + require_capability('moodle/course:enrolreview', $coursecontext); + } + + list($coursectxselect, $coursectxjoin) = context_instance_preload_sql('c.id', CONTEXT_COURSE, 'ctx'); + $coursesql = "SELECT c.* $coursectxselect + FROM {course} c $coursectxjoin + WHERE c.id = $courseid"; + $course = $DB->get_record_sql($coursesql); + context_instance_preload($course); + $coursecontext = get_context_instance(CONTEXT_COURSE, $params['courseid']); + if ($courseid == SITEID) { + $context = get_system_context(); + } else { + $context = $coursecontext; + } + try { + self::validate_context($context); + } catch (Exception $e) { + $exceptionparam = new stdClass(); + $exceptionparam->message = $e->getMessage(); + $exceptionparam->courseid = $params['courseid']; + throw new moodle_exception(get_string('errorcoursecontextnotvalid' , 'webservice', $exceptionparam)); + } + + list($enrolledsql, $enrolledparams) = get_enrolled_sql($coursecontext, $withcapability, $groupid, $onlyactive); + list($ctxselect, $ctxjoin) = context_instance_preload_sql('u.id', CONTEXT_USER, 'ctx'); + $records = $DB->get_records_sql($enrolledsql, $enrolledparams); + $sqlparams['courseid'] = $courseid; + $sql = "SELECT u.* $ctxselect + FROM {user} u $ctxjoin + WHERE u.id IN ($enrolledsql) + ORDER BY u.id ASC"; + $enrolledusers = $DB->get_recordset_sql($sql, $enrolledparams); + $users = array(); + foreach ($enrolledusers as $user) { + if (!empty($user->deleted)) { + continue; + } + context_instance_preload($user); + if ($userdetails = user_get_user_details($user, $course)) { + $users[] = $userdetails; + } + } + $enrolledusers->close(); + + return $users; + } + + /** + * Returns description of method result value + * @return external_description + */ + public static function get_enrolled_users_returns() { + return new external_multiple_structure( + new external_single_structure( + array( + 'id' => new external_value(PARAM_NUMBER, 'ID of the user'), + 'username' => new external_value(PARAM_RAW, 'Username policy is defined in Moodle security config', VALUE_OPTIONAL), + 'firstname' => new external_value(PARAM_NOTAGS, 'The first name(s) of the user', VALUE_OPTIONAL), + 'lastname' => new external_value(PARAM_NOTAGS, 'The family name of the user', VALUE_OPTIONAL), + 'fullname' => new external_value(PARAM_NOTAGS, 'The fullname of the user'), + 'email' => new external_value(PARAM_TEXT, 'An email address - allow email as root@localhost', VALUE_OPTIONAL), + 'address' => new external_value(PARAM_MULTILANG, 'Postal address', VALUE_OPTIONAL), + 'phone1' => new external_value(PARAM_NOTAGS, 'Phone 1', VALUE_OPTIONAL), + 'phone2' => new external_value(PARAM_NOTAGS, 'Phone 2', VALUE_OPTIONAL), + 'icq' => new external_value(PARAM_NOTAGS, 'icq number', VALUE_OPTIONAL), + 'skype' => new external_value(PARAM_NOTAGS, 'skype id', VALUE_OPTIONAL), + 'yahoo' => new external_value(PARAM_NOTAGS, 'yahoo id', VALUE_OPTIONAL), + 'aim' => new external_value(PARAM_NOTAGS, 'aim id', VALUE_OPTIONAL), + 'msn' => new external_value(PARAM_NOTAGS, 'msn number', VALUE_OPTIONAL), + 'department' => new external_value(PARAM_TEXT, 'department', VALUE_OPTIONAL), + 'institution' => new external_value(PARAM_TEXT, 'institution', VALUE_OPTIONAL), + 'interests' => new external_value(PARAM_TEXT, 'user interests (separated by commas)', VALUE_OPTIONAL), + 'firstaccess' => new external_value(PARAM_INT, 'first access to the site (0 if never)', VALUE_OPTIONAL), + 'lastaccess' => new external_value(PARAM_INT, 'last access to the site (0 if never)', VALUE_OPTIONAL), + 'description' => new external_value(PARAM_RAW, 'User profile description', VALUE_OPTIONAL), + 'descriptionformat' => new external_value(PARAM_INT, 'User profile description format', VALUE_OPTIONAL), + 'city' => new external_value(PARAM_NOTAGS, 'Home city of the user', VALUE_OPTIONAL), + 'url' => new external_value(PARAM_URL, 'URL of the user', VALUE_OPTIONAL), + 'country' => new external_value(PARAM_ALPHA, 'Home country code of the user, such as AU or CZ', VALUE_OPTIONAL), + 'profileimageurlsmall' => new external_value(PARAM_URL, 'User image profile URL - small version'), + 'profileimageurl' => new external_value(PARAM_URL, 'User image profile URL - big version'), + 'customfields' => new external_multiple_structure( + new external_single_structure( + array( + 'type' => new external_value(PARAM_ALPHANUMEXT, 'The type of the custom field - text field, checkbox...'), + 'value' => new external_value(PARAM_RAW, 'The value of the custom field'), + 'name' => new external_value(PARAM_RAW, 'The name of the custom field'), + 'shortname' => new external_value(PARAM_RAW, 'The shortname of the custom field - to be able to build the field class in the code'), + ) + ), 'User custom fields (also known as user profil fields)', VALUE_OPTIONAL), + 'groups' => new external_multiple_structure( + new external_single_structure( + array( + 'id' => new external_value(PARAM_INT, 'group id'), + 'name' => new external_value(PARAM_RAW, 'group name'), + 'description' => new external_value(PARAM_RAW, 'group description'), + ) + ), 'user groups', VALUE_OPTIONAL), + 'roles' => new external_multiple_structure( + new external_single_structure( + array( + 'roleid' => new external_value(PARAM_INT, 'role id'), + 'name' => new external_value(PARAM_RAW, 'role name'), + 'shortname' => new external_value(PARAM_ALPHANUMEXT, 'role shortname'), + 'sortorder' => new external_value(PARAM_INT, 'role sortorder') + ) + ), 'user roles', VALUE_OPTIONAL), + 'preferences' => new external_multiple_structure( + new external_single_structure( + array( + 'name' => new external_value(PARAM_ALPHANUMEXT, 'The name of the preferences'), + 'value' => new external_value(PARAM_RAW, 'The value of the custom field'), + ) + ), 'User preferences', VALUE_OPTIONAL), + 'enrolledcourses' => new external_multiple_structure( + new external_single_structure( + array( + 'id' => new external_value(PARAM_INT, 'Id of the course'), + 'fullname' => new external_value(PARAM_RAW, 'Fullname of the course'), + 'shortname' => new external_value(PARAM_RAW, 'Shortname of the course') + ) + ), 'Courses where the user is enrolled - limited by which courses the user is able to see', VALUE_OPTIONAL) + ) + ) + ); + } + +} + +/** + * Role functions + */ +class core_role_external extends external_api { + + /** + * Returns description of method parameters + * @return external_function_parameters + */ + public static function assign_roles_parameters() { + return new external_function_parameters( + array( + 'assignments' => new external_multiple_structure( + new external_single_structure( + array( + 'roleid' => new external_value(PARAM_INT, 'Role to assign to the user'), + 'userid' => new external_value(PARAM_INT, 'The user that is going to be assigned'), + 'contextid' => new external_value(PARAM_INT, 'The context to assign the user role in'), + ) + ) + ) + ) + ); + } + + /** + * Manual role assignments to users + * + * @param array $assignment An array of manual role assignment + * @return null + */ + public static function assign_roles($assignments) { + global $DB; + + // Do basic automatic PARAM checks on incoming data, using params description + // If any problems are found then exceptions are thrown with helpful error messages + $params = self::validate_parameters(self::assign_roles_parameters(), array('assignments'=>$assignments)); + + $transaction = $DB->start_delegated_transaction(); + + foreach ($params['assignments'] as $assignment) { + // Ensure the current user is allowed to run this function in the enrolment context + $context = get_context_instance_by_id($assignment['contextid']); + self::validate_context($context); + require_capability('moodle/role:assign', $context); + + // throw an exception if user is not able to assign the role in this context + $roles = get_assignable_roles($context, ROLENAME_SHORT); + + if (!key_exists($assignment['roleid'], $roles)) { + throw new invalid_parameter_exception('Can not assign roleid='.$assignment['roleid'].' in contextid='.$assignment['contextid']); + } + + role_assign($assignment['roleid'], $assignment['userid'], $assignment['contextid']); + } + + $transaction->allow_commit(); + } + + /** + * Returns description of method result value + * @return external_description + */ + public static function assign_roles_returns() { + return null; + } + + + /** + * Returns description of method parameters + * @return external_function_parameters + */ + public static function unassign_roles_parameters() { + return new external_function_parameters( + array( + 'unassignments' => new external_multiple_structure( + new external_single_structure( + array( + 'roleid' => new external_value(PARAM_INT, 'Role to assign to the user'), + 'userid' => new external_value(PARAM_INT, 'The user that is going to be assigned'), + 'contextid' => new external_value(PARAM_INT, 'The context to unassign the user role from'), + ) + ) + ) + ) + ); + } + + /** + * Unassign roles from users + * + * @param array $unassignment An array of unassignment + * @return null + */ + public static function unassign_roles($unassignments) { + global $DB; + + // Do basic automatic PARAM checks on incoming data, using params description + // If any problems are found then exceptions are thrown with helpful error messages + $params = self::validate_parameters(self::unassign_roles_parameters(), array('unassignments'=>$unassignments)); + + $transaction = $DB->start_delegated_transaction(); + + foreach ($params['unassignments'] as $unassignment) { + // Ensure the current user is allowed to run this function in the unassignment context + $context = get_context_instance_by_id($unassignment['contextid']); + self::validate_context($context); + require_capability('moodle/role:assign', $context); + + // throw an exception if user is not able to unassign the role in this context + $roles = get_assignable_roles($context, ROLENAME_SHORT); + if (!key_exists($unassignment['roleid'], $roles)) { + throw new invalid_parameter_exception('Can not unassign roleid='.$unassignment['roleid'].' in contextid='.$unassignment['contextid']); + } + + role_unassign($unassignment['roleid'], $unassignment['userid'], $unassignment['contextid']); + } + + $transaction->allow_commit(); + } + + /** + * Returns description of method result value + * @return null + */ + public static function unassign_roles_returns() { + return null; + } +} + + +/** + * Deprecated enroll and role functions + * @deprecated since Moodle 2.2 please use core_enrol_external or core_role_external instead + */ class moodle_enrol_external extends external_api { /** * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_enrol_external::get_enrolled_users_parameters() instead * @return external_function_parameters */ public static function get_enrolled_users_parameters() { @@ -52,7 +456,7 @@ class moodle_enrol_external extends external_api { /** * Get list of course participants. - * + * @deprecated since Moodle 2.2 please use core_enrol_external::get_enrolled_users() instead * @param int $courseid * @param text $withcapability * @param int $groupid @@ -143,6 +547,7 @@ class moodle_enrol_external extends external_api { /** * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_enrol_external::get_enrolled_users_returns() instead * @return external_description */ public static function get_enrolled_users_returns() { @@ -164,192 +569,89 @@ class moodle_enrol_external extends external_api { /** * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_enrol_external::get_users_courses_parameters() instead * @return external_function_parameters */ public static function get_users_courses_parameters() { - return new external_function_parameters( - array( - 'userid' => new external_value(PARAM_INT, 'user id'), - ) - ); + return core_enrol_external::get_users_courses_parameters(); } /** * Get list of courses user is enrolled in (only active enrolments are returned). * * Please note the current user must be able to access the course, otherwise the course is not included. - * + * @deprecated since Moodle 2.2 please use core_enrol_external::get_users_courses() instead * @param int $userid * @return array of courses */ public static function get_users_courses($userid) { - global $USER; - - // Do basic automatic PARAM checks on incoming data, using params description - // If any problems are found then exceptions are thrown with helpful error messages - $params = self::validate_parameters(self::get_users_courses_parameters(), array('userid'=>$userid)); - - $courses = enrol_get_users_courses($params['userid'], true, 'id, shortname, fullname, idnumber, visible'); - $result = array(); - - foreach ($courses as $course) { - $context = get_context_instance(CONTEXT_COURSE, $course->id); - try { - self::validate_context($context); - } catch (Exception $e) { - // current user can not access this course, sorry we can not disclose who is enrolled in this course! - continue; - } - if ($userid != $USER->id and !has_capability('moodle/course:viewparticipants', $context)) { - // we need capability to view participants - continue; - } - - $result[] = array('id'=>$course->id, 'shortname'=>$course->shortname, 'fullname'=>$course->fullname, 'idnumber'=>$course->idnumber,'visible'=>$course->visible); - } - - return $result; + return core_enrol_external::get_users_courses($userid); } /** * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_enrol_external::get_users_courses_returns() instead * @return external_description */ public static function get_users_courses_returns() { - return new external_multiple_structure( - new external_single_structure( - array( - 'id' => new external_value(PARAM_INT, 'id of course'), - 'shortname' => new external_value(PARAM_RAW, 'short name of course'), - 'fullname' => new external_value(PARAM_RAW, 'long name of course'), - 'idnumber' => new external_value(PARAM_RAW, 'id number of course'), - 'visible' => new external_value(PARAM_INT, '1 means visible, 0 means hidden course'), - ) - ) - ); + return core_enrol_external::get_users_courses_returns(); } /** * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_role_external::assign_roles_parameters() instead * @return external_function_parameters */ public static function role_assign_parameters() { - return new external_function_parameters( - array( - 'assignments' => new external_multiple_structure( - new external_single_structure( - array( - 'roleid' => new external_value(PARAM_INT, 'Role to assign to the user'), - 'userid' => new external_value(PARAM_INT, 'The user that is going to be assigned'), - 'contextid' => new external_value(PARAM_INT, 'The context to assign the user role in'), - ) - ) - ) - ) - ); + return core_role_external::assign_roles_parameters(); } /** * Manual role assignments to users - * + * @deprecated since Moodle 2.2 please use core_role_external::assign_roles() instead * @param array $assignment An array of manual role assignment * @return null */ public static function role_assign($assignments) { - global $DB; - - // Do basic automatic PARAM checks on incoming data, using params description - // If any problems are found then exceptions are thrown with helpful error messages - $params = self::validate_parameters(self::role_assign_parameters(), array('assignments'=>$assignments)); - - $transaction = $DB->start_delegated_transaction(); - - foreach ($params['assignments'] as $assignment) { - // Ensure the current user is allowed to run this function in the enrolment context - $context = get_context_instance_by_id($assignment['contextid']); - self::validate_context($context); - require_capability('moodle/role:assign', $context); - - // throw an exception if user is not able to assign the role in this context - $roles = get_assignable_roles($context, ROLENAME_SHORT); - if (!key_exists($assignment['roleid'], $roles)) { - throw new invalid_parameter_exception('Can not assign roleid='.$assignment['roleid'].' in contextid='.$assignment['contextid']); - } - - role_assign($assignment['roleid'], $assignment['userid'], $assignment['contextid']); - } - - $transaction->allow_commit(); + return core_role_external::assign_roles($assignments); } /** * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_role_external::assign_roles_returns() instead * @return external_description */ public static function role_assign_returns() { - return null; + return core_role_external::assign_roles_returns(); } /** * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_role_external::unassign_roles_parameters() instead * @return external_function_parameters */ public static function role_unassign_parameters() { - return new external_function_parameters( - array( - 'unassignments' => new external_multiple_structure( - new external_single_structure( - array( - 'roleid' => new external_value(PARAM_INT, 'Role to assign to the user'), - 'userid' => new external_value(PARAM_INT, 'The user that is going to be assigned'), - 'contextid' => new external_value(PARAM_INT, 'The context to unassign the user role from'), - ) - ) - ) - ) - ); + return core_role_external::unassign_roles_parameters(); } /** * Unassign roles from users - * + * @deprecated since Moodle 2.2 please use core_role_external::unassign_roles() instead * @param array $unassignment An array of unassignment * @return null */ public static function role_unassign($unassignments) { - global $DB; - - // Do basic automatic PARAM checks on incoming data, using params description - // If any problems are found then exceptions are thrown with helpful error messages - $params = self::validate_parameters(self::role_unassign_parameters(), array('unassignments'=>$unassignments)); - - $transaction = $DB->start_delegated_transaction(); - - foreach ($params['unassignments'] as $unassignment) { - // Ensure the current user is allowed to run this function in the unassignment context - $context = get_context_instance_by_id($unassignment['contextid']); - self::validate_context($context); - require_capability('moodle/role:assign', $context); - - // throw an exception if user is not able to unassign the role in this context - $roles = get_assignable_roles($context, ROLENAME_SHORT); - if (!key_exists($unassignment['roleid'], $roles)) { - throw new invalid_parameter_exception('Can not unassign roleid='.$unassignment['roleid'].' in contextid='.$unassignment['contextid']); - } - - role_unassign($unassignment['roleid'], $unassignment['userid'], $unassignment['contextid']); - } - - $transaction->allow_commit(); + return core_role_external::unassign_roles($unassignments); } /** * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_role_external::unassign_roles_returns() instead * @return external_description */ public static function role_unassign_returns() { - return null; + return core_role_external::unassign_roles_returns(); } } diff --git a/enrol/manual/db/services.php b/enrol/manual/db/services.php index cd49d1b509b..4b41d24ac88 100644 --- a/enrol/manual/db/services.php +++ b/enrol/manual/db/services.php @@ -28,8 +28,17 @@ $functions = array( // === enrol related functions === 'moodle_enrol_manual_enrol_users' => array( - 'classname' => 'moodle_enrol_manual_external', - 'methodname' => 'manual_enrol_users', + 'classname' => 'enrol_manual_external', + 'methodname' => 'enrol_users', + 'classpath' => 'enrol/manual/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as enrol_manual_enrol_users()', + 'capabilities'=> 'enrol/manual:enrol', + 'type' => 'write', + ), + + 'enrol_manual_enrol_users' => array( + 'classname' => 'enrol_manual_external', + 'methodname' => 'enrol_users', 'classpath' => 'enrol/manual/externallib.php', 'description' => 'Manual enrol users', 'capabilities'=> 'enrol/manual:enrol', diff --git a/enrol/manual/externallib.php b/enrol/manual/externallib.php index 2edc9926b7a..f2daf62773d 100644 --- a/enrol/manual/externallib.php +++ b/enrol/manual/externallib.php @@ -29,13 +29,16 @@ defined('MOODLE_INTERNAL') || die(); require_once("$CFG->libdir/externallib.php"); -class moodle_enrol_manual_external extends external_api { +/** + * Manual enrolment functions + */ +class enrol_manual_external extends external_api { /** * Returns description of method parameters * @return external_function_parameters */ - public static function manual_enrol_users_parameters() { + public static function enrol_users_parameters() { return new external_function_parameters( array( 'enrolments' => new external_multiple_structure( @@ -60,12 +63,12 @@ class moodle_enrol_manual_external extends external_api { * @param array $enrolments An array of user enrolment * @return null */ - public static function manual_enrol_users($enrolments) { + public static function enrol_users($enrolments) { global $DB, $CFG; require_once($CFG->libdir . '/enrollib.php'); - $params = self::validate_parameters(self::manual_enrol_users_parameters(), + $params = self::validate_parameters(self::enrol_users_parameters(), array('enrolments' => $enrolments)); $transaction = $DB->start_delegated_transaction(); //rollback all enrolment if an error occurs @@ -134,10 +137,47 @@ class moodle_enrol_manual_external extends external_api { /** * Returns description of method result value - * @return external_description + * @return null */ - public static function manual_enrol_users_returns() { + public static function enrol_users_returns() { return null; } } + +/** + * Deprecated manual enrolment functions + * @deprecated since Moodle 2.2 please use enrol_manual_external instead + */ +class moodle_enrol_manual_external extends external_api { + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use enrol_manual_external::enrol_users_parameters instead + * @return external_function_parameters + */ + public static function manual_enrol_users_parameters() { + return enrol_manual_external::enrol_users_parameters(); + } + + /** + * Enrolment of users + * Function throw an exception at the first error encountered. + * @deprecated since Moodle 2.2 please use enrol_manual_external::enrol_users instead + * @param array $enrolments An array of user enrolment + * @return null + */ + public static function manual_enrol_users($enrolments) { + return enrol_manual_external::enrol_users($enrolments); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use enrol_manual_external::enrol_users_returns instead + * @return external_description + */ + public static function manual_enrol_users_returns() { + return enrol_manual_external::enrol_users_returns(); + } + +} diff --git a/enrol/manual/version.php b/enrol/manual/version.php index 5f2e9e6a6bb..e011c7687a8 100644 --- a/enrol/manual/version.php +++ b/enrol/manual/version.php @@ -26,4 +26,4 @@ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2010071201; +$plugin->version = 2010071201.02; diff --git a/files/externallib.php b/files/externallib.php index d71cb72c33c..530f18d4c32 100644 --- a/files/externallib.php +++ b/files/externallib.php @@ -27,7 +27,10 @@ require_once("$CFG->libdir/externallib.php"); require_once("$CFG->libdir/filelib.php"); -class moodle_file_external extends external_api { +/** + * Files functions + */ +class core_files_external extends external_api { /** * Returns description of get_files parameters @@ -296,3 +299,77 @@ class moodle_file_external extends external_api { ); } } + +/** + * Deprecated files functions + * @deprecated since Moodle 2.2 please use core_files_external instead + */ +class moodle_file_external extends external_api { + + /** + * Returns description of get_files parameters + * @deprecated since Moodle 2.2 please use core_files_external::get_files_parameters instead + * @return external_function_parameters + */ + public static function get_files_parameters() { + return core_files_external::get_files_parameters(); + } + + /** + * Return moodle files listing + * @deprecated since Moodle 2.2 please use core_files_external::get_files instead + * @param int $contextid + * @param int $component + * @param int $filearea + * @param int $itemid + * @param string $filepath + * @param string $filename + * @return array + */ + public static function get_files($contextid, $component, $filearea, $itemid, $filepath, $filename) { + return core_files_external::get_files($contextid, $component, $filearea, $itemid, $filepath, $filename); + } + + /** + * Returns description of get_files returns + * @deprecated since Moodle 2.2 please use core_files_external::get_files_returns instead + * @return external_multiple_structure + */ + public static function get_files_returns() { + return core_files_external::get_files_returns(); + } + + /** + * Returns description of upload parameters + * @deprecated since Moodle 2.2 please use core_files_external::upload_parameters instead + * @return external_function_parameters + */ + public static function upload_parameters() { + return core_files_external::upload_parameters(); + } + + /** + * Uploading a file to moodle + * @deprecated since Moodle 2.2 please use core_files_external::upload instead + * @param int $contextid + * @param string $component + * @param string $filearea + * @param int $itemid + * @param string $filepath + * @param string $filename + * @param string $filecontent + * @return array + */ + public static function upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent) { + return core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent); + } + + /** + * Returns description of upload returns + * @deprecated since Moodle 2.2 please use core_files_external::upload_returns instead + * @return external_multiple_structure + */ + public static function upload_returns() { + return core_files_external::upload_returns(); + } +} diff --git a/group/externallib.php b/group/externallib.php index a37cf64da00..92cea133e41 100644 --- a/group/externallib.php +++ b/group/externallib.php @@ -26,7 +26,10 @@ require_once("$CFG->libdir/externallib.php"); -class moodle_group_external extends external_api { +/** + * Group functions + */ +class core_group_external extends external_api { /** * Returns description of method parameters @@ -305,7 +308,7 @@ class moodle_group_external extends external_api { * Returns description of method parameters * @return external_function_parameters */ - public static function get_groupmembers_parameters() { + public static function get_group_members_parameters() { return new external_function_parameters( array( 'groupids' => new external_multiple_structure(new external_value(PARAM_INT, 'Group ID')), @@ -318,10 +321,10 @@ class moodle_group_external extends external_api { * @param array $groupids array of group ids * @return array with group id keys containing arrays of user ids */ - public static function get_groupmembers($groupids) { + public static function get_group_members($groupids) { $members = array(); - $params = self::validate_parameters(self::get_groupmembers_parameters(), array('groupids'=>$groupids)); + $params = self::validate_parameters(self::get_group_members_parameters(), array('groupids'=>$groupids)); foreach ($params['groupids'] as $groupid) { // validate params @@ -351,7 +354,7 @@ class moodle_group_external extends external_api { * Returns description of method result value * @return external_description */ - public static function get_groupmembers_returns() { + public static function get_group_members_returns() { return new external_multiple_structure( new external_single_structure( array( @@ -367,7 +370,7 @@ class moodle_group_external extends external_api { * Returns description of method parameters * @return external_function_parameters */ - public static function add_groupmembers_parameters() { + public static function add_group_members_parameters() { return new external_function_parameters( array( 'members'=> new external_multiple_structure( @@ -387,11 +390,11 @@ class moodle_group_external extends external_api { * @param array $members of arrays with keys userid, groupid * @return void */ - public static function add_groupmembers($members) { + public static function add_group_members($members) { global $CFG, $DB; require_once("$CFG->dirroot/group/lib.php"); - $params = self::validate_parameters(self::add_groupmembers_parameters(), array('members'=>$members)); + $params = self::validate_parameters(self::add_group_members_parameters(), array('members'=>$members)); $transaction = $DB->start_delegated_transaction(); foreach ($params['members'] as $member) { @@ -429,9 +432,9 @@ class moodle_group_external extends external_api { /** * Returns description of method result value - * @return external_description + * @return null */ - public static function add_groupmembers_returns() { + public static function add_group_members_returns() { return null; } @@ -440,7 +443,7 @@ class moodle_group_external extends external_api { * Returns description of method parameters * @return external_function_parameters */ - public static function delete_groupmembers_parameters() { + public static function delete_group_members_parameters() { return new external_function_parameters( array( 'members'=> new external_multiple_structure( @@ -460,11 +463,11 @@ class moodle_group_external extends external_api { * @param array $members of arrays with keys userid, groupid * @return void */ - public static function delete_groupmembers($members) { + public static function delete_group_members($members) { global $CFG, $DB; require_once("$CFG->dirroot/group/lib.php"); - $params = self::validate_parameters(self::delete_groupmembers_parameters(), array('members'=>$members)); + $params = self::validate_parameters(self::delete_group_members_parameters(), array('members'=>$members)); $transaction = $DB->start_delegated_transaction(); @@ -497,10 +500,217 @@ class moodle_group_external extends external_api { /** * Returns description of method result value - * @return external_description + * @return null */ - public static function delete_groupmembers_returns() { + public static function delete_group_members_returns() { return null; } } + +/** + * Deprecated group functions + * @deprecated since Moodle 2.2 please use core_group_external instead + */ +class moodle_group_external extends external_api { + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_group_external::create_groups_parameters instead + * @return external_function_parameters + */ + public static function create_groups_parameters() { + return core_group_external::create_groups_parameters(); + } + + /** + * Create groups + * @deprecated since Moodle 2.2 please use core_group_external::create_groups instead + * @param array $groups array of group description arrays (with keys groupname and courseid) + * @return array of newly created groups + */ + public static function create_groups($groups) { + return core_group_external::create_groups($groups); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_group_external::create_groups_returns instead + * @return external_description + */ + public static function create_groups_returns() { + return core_group_external::create_groups_returns(); + } + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_group_external::get_groups_parameters instead + * @return external_function_parameters + */ + public static function get_groups_parameters() { + return core_group_external::get_groups_parameters(); + } + + /** + * Get groups definition specified by ids + * @deprecated since Moodle 2.2 please use core_group_external::get_groups instead + * @param array $groupids arrays of group ids + * @return array of group objects (id, courseid, name, enrolmentkey) + */ + public static function get_groups($groupids) { + return core_group_external::get_groups($groupids); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_group_external::get_groups_returns instead + * @return external_description + */ + public static function get_groups_returns() { + return core_group_external::get_groups_returns(); + } + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_group_external::get_course_groups_parameters instead + * @return external_function_parameters + */ + public static function get_course_groups_parameters() { + return core_group_external::get_course_groups_parameters(); + } + + /** + * Get all groups in the specified course + * @deprecated since Moodle 2.2 please use core_group_external::get_course_groups instead + * @param int $courseid id of course + * @return array of group objects (id, courseid, name, enrolmentkey) + */ + public static function get_course_groups($courseid) { + return core_group_external::get_course_groups($courseid); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_group_external::get_course_groups_returns instead + * @return external_description + */ + public static function get_course_groups_returns() { + return core_group_external::get_course_groups_returns(); + } + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_group_external::delete_group_members_parameters instead + * @return external_function_parameters + */ + public static function delete_groups_parameters() { + return core_group_external::delete_group_members_parameters(); + } + + /** + * Delete groups + * @deprecated since Moodle 2.2 please use core_group_external::delete_groups instead + * @param array $groupids array of group ids + * @return void + */ + public static function delete_groups($groupids) { + return core_group_external::delete_groups($groupids); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_group_external::delete_group_members_returns instead + * @return external_description + */ + public static function delete_groups_returns() { + return core_group_external::delete_group_members_returns(); + } + + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_group_external::get_group_members_parameters instead + * @return external_function_parameters + */ + public static function get_groupmembers_parameters() { + return core_group_external::get_group_members_parameters(); + } + + /** + * Return all members for a group + * @deprecated since Moodle 2.2 please use core_group_external::get_group_members instead + * @param array $groupids array of group ids + * @return array with group id keys containing arrays of user ids + */ + public static function get_groupmembers($groupids) { + return core_group_external::get_group_members($groupids); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_group_external::get_group_members_returns instead + * @return external_description + */ + public static function get_groupmembers_returns() { + return core_group_external::get_group_members_returns(); + } + + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_group_external::add_group_members_parameters instead + * @return external_function_parameters + */ + public static function add_groupmembers_parameters() { + return core_group_external::add_group_members_parameters(); + } + + /** + * Add group members + * @deprecated since Moodle 2.2 please use core_group_external::add_group_members instead + * @param array $members of arrays with keys userid, groupid + * @return void + */ + public static function add_groupmembers($members) { + return core_group_external::add_group_members($members); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_group_external::add_group_members_returns instead + * @return external_description + */ + public static function add_groupmembers_returns() { + return core_group_external::add_group_members_returns(); + } + + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_group_external::delete_group_members_parameters instead + * @return external_function_parameters + */ + public static function delete_groupmembers_parameters() { + return core_group_external::delete_group_members_parameters(); + } + + /** + * Delete group members + * @deprecated since Moodle 2.2 please use core_group_external::delete_group_members instead + * @param array $members of arrays with keys userid, groupid + * @return void + */ + public static function delete_groupmembers($members) { + return core_group_external::delete_group_members($members); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_group_external::delete_group_members_returns instead + * @return external_description + */ + public static function delete_groupmembers_returns() { + return core_group_external::delete_group_members_returns(); + } + +} \ No newline at end of file diff --git a/lib/db/services.php b/lib/db/services.php index 117bf9d961a..90df2e6add8 100644 --- a/lib/db/services.php +++ b/lib/db/services.php @@ -29,7 +29,16 @@ $functions = array( // === group related functions === 'moodle_group_create_groups' => array( - 'classname' => 'moodle_group_external', + 'classname' => 'core_group_external', + 'methodname' => 'create_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_create_groups(). ', + 'type' => 'write', + 'capabilities'=> 'moodle/course:managegroups', + ), + + 'core_group_create_groups' => array( + 'classname' => 'core_group_external', 'methodname' => 'create_groups', 'classpath' => 'group/externallib.php', 'description' => 'Creates new groups.', @@ -38,7 +47,16 @@ $functions = array( ), 'moodle_group_get_groups' => array( - 'classname' => 'moodle_group_external', + 'classname' => 'core_group_external', + 'methodname' => 'get_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_groups()', + 'type' => 'read', + 'capabilities'=> 'moodle/course:managegroups', + ), + + 'core_group_get_groups' => array( + 'classname' => 'core_group_external', 'methodname' => 'get_groups', 'classpath' => 'group/externallib.php', 'description' => 'Returns group details.', @@ -47,7 +65,16 @@ $functions = array( ), 'moodle_group_get_course_groups' => array( - 'classname' => 'moodle_group_external', + 'classname' => 'core_group_external', + 'methodname' => 'get_course_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_course_groups()', + 'type' => 'read', + 'capabilities'=> 'moodle/course:managegroups', + ), + + 'core_group_get_course_groups' => array( + 'classname' => 'core_group_external', 'methodname' => 'get_course_groups', 'classpath' => 'group/externallib.php', 'description' => 'Returns all groups in specified course.', @@ -56,7 +83,16 @@ $functions = array( ), 'moodle_group_delete_groups' => array( - 'classname' => 'moodle_group_external', + 'classname' => 'core_group_external', + 'methodname' => 'delete_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_delete_groups()', + 'type' => 'delete', + 'capabilities'=> 'moodle/course:managegroups', + ), + + 'core_group_delete_groups' => array( + 'classname' => 'core_group_external', 'methodname' => 'delete_groups', 'classpath' => 'group/externallib.php', 'description' => 'Deletes all specified groups.', @@ -65,8 +101,17 @@ $functions = array( ), 'moodle_group_get_groupmembers' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'get_groupmembers', + 'classname' => 'core_group_external', + 'methodname' => 'get_group_members', + 'classpath' => 'group/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_get_group_members()', + 'type' => 'read', + 'capabilities'=> 'moodle/course:managegroups', + ), + + 'core_group_get_group_members' => array( + 'classname' => 'core_group_external', + 'methodname' => 'get_group_members', 'classpath' => 'group/externallib.php', 'description' => 'Returns group members.', 'type' => 'read', @@ -74,8 +119,17 @@ $functions = array( ), 'moodle_group_add_groupmembers' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'add_groupmembers', + 'classname' => 'core_group_external', + 'methodname' => 'add_group_members', + 'classpath' => 'group/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_add_group_members()', + 'type' => 'write', + 'capabilities'=> 'moodle/course:managegroups', + ), + + 'core_group_add_group_members' => array( + 'classname' => 'core_group_external', + 'methodname' => 'add_group_members', 'classpath' => 'group/externallib.php', 'description' => 'Adds group members.', 'type' => 'write', @@ -83,26 +137,51 @@ $functions = array( ), 'moodle_group_delete_groupmembers' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'delete_groupmembers', + 'classname' => 'core_group_external', + 'methodname' => 'delete_group_members', + 'classpath' => 'group/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_group_delete_group_members()', + 'type' => 'delete', + 'capabilities'=> 'moodle/course:managegroups', + ), + + 'core_group_delete_group_members' => array( + 'classname' => 'core_group_external', + 'methodname' => 'delete_group_members', 'classpath' => 'group/externallib.php', 'description' => 'Deletes group members.', 'type' => 'delete', 'capabilities'=> 'moodle/course:managegroups', ), - // === file related functions === 'moodle_file_get_files' => array( - 'classname' => 'moodle_file_external', + 'classname' => 'core_files_external', + 'methodname' => 'get_files', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_files_get_files()', + 'type' => 'read', + 'classpath' => 'files/externallib.php', + ), + + 'core_files_get_files' => array( + 'classname' => 'core_files_external', 'methodname' => 'get_files', 'description' => 'browse moodle files', 'type' => 'read', 'classpath' => 'files/externallib.php', ), + 'moodle_file_upload' => array( - 'classname' => 'moodle_file_external', + 'classname' => 'core_files_external', + 'methodname' => 'upload', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_files_upload()', + 'type' => 'write', + 'classpath' => 'files/externallib.php', + ), + + 'core_files_upload' => array( + 'classname' => 'core_files_external', 'methodname' => 'upload', 'description' => 'upload a file to moodle', 'type' => 'write', @@ -112,7 +191,16 @@ $functions = array( // === user related functions === 'moodle_user_create_users' => array( - 'classname' => 'moodle_user_external', + 'classname' => 'core_user_external', + 'methodname' => 'create_users', + 'classpath' => 'user/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_create_users()', + 'type' => 'write', + 'capabilities'=> 'moodle/user:create', + ), + + 'core_user_create_users' => array( + 'classname' => 'core_user_external', 'methodname' => 'create_users', 'classpath' => 'user/externallib.php', 'description' => 'Create users.', @@ -121,7 +209,16 @@ $functions = array( ), 'moodle_user_get_users_by_id' => array( - 'classname' => 'moodle_user_external', + 'classname' => 'core_user_external', + 'methodname' => 'get_users_by_id', + 'classpath' => 'user/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_get_users_by_id()', + 'type' => 'read', + 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update', + ), + + 'core_user_get_users_by_id' => array( + 'classname' => 'core_user_external', 'methodname' => 'get_users_by_id', 'classpath' => 'user/externallib.php', 'description' => 'Get users by id.', @@ -130,25 +227,43 @@ $functions = array( ), 'moodle_user_get_users_by_courseid' => array( - 'classname' => 'moodle_user_external', - 'methodname' => 'get_users_by_courseid', - 'classpath' => 'user/externallib.php', - 'description' => 'Get enrolled users by course id.', + 'classname' => 'core_enrol_external', + 'methodname' => 'get_enrolled_users', + 'classpath' => 'enrol/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_enrol_get_enrolled_users()', 'type' => 'read', 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups', ), 'moodle_user_get_course_participants_by_id' => array( - 'classname' => 'moodle_user_external', - 'methodname' => 'get_course_participants_by_id', + 'classname' => 'core_user_external', + 'methodname' => 'get_course_user_profiles', 'classpath' => 'user/externallib.php', - 'description' => 'Get course user profiles by id.', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_get_course_user_profiles()', + 'type' => 'read', + 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups', + ), + + 'core_user_get_course_user_profiles' => array( + 'classname' => 'core_user_external', + 'methodname' => 'get_course_user_profiles', + 'classpath' => 'user/externallib.php', + 'description' => 'Get course user profiles (each of the profils matching a course id and a user id).', 'type' => 'read', 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups', ), 'moodle_user_delete_users' => array( - 'classname' => 'moodle_user_external', + 'classname' => 'core_user_external', + 'methodname' => 'delete_users', + 'classpath' => 'user/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_delete_users()', + 'type' => 'write', + 'capabilities'=> 'moodle/user:delete', + ), + + 'core_user_delete_users' => array( + 'classname' => 'core_user_external', 'methodname' => 'delete_users', 'classpath' => 'user/externallib.php', 'description' => 'Delete users.', @@ -157,7 +272,16 @@ $functions = array( ), 'moodle_user_update_users' => array( - 'classname' => 'moodle_user_external', + 'classname' => 'core_user_external', + 'methodname' => 'update_users', + 'classpath' => 'user/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_user_update_users()', + 'type' => 'write', + 'capabilities'=> 'moodle/user:update', + ), + + 'core_user_update_users' => array( + 'classname' => 'core_user_external', 'methodname' => 'update_users', 'classpath' => 'user/externallib.php', 'description' => 'Update users.', @@ -171,24 +295,53 @@ $functions = array( 'classname' => 'moodle_enrol_external', 'methodname' => 'get_enrolled_users', 'classpath' => 'enrol/externallib.php', - 'description' => 'Get list of course participants', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. Please use core_enrol_get_enrolled_users() (previously known as moodle_user_get_users_by_courseid).', 'type' => 'read', 'capabilities'=> 'moodle/site:viewparticipants, moodle/course:viewparticipants, moodle/role:review, moodle/site:accessallgroups, moodle/course:enrolreview', ), + + 'core_enrol_get_enrolled_users' => array( + 'classname' => 'core_enrol_external', + 'methodname' => 'get_enrolled_users', + 'classpath' => 'enrol/externallib.php', + 'description' => 'Get enrolled users by course id.', + 'type' => 'read', + 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update, moodle/site:accessallgroups', + ), 'moodle_enrol_get_users_courses' => array( - 'classname' => 'moodle_enrol_external', + 'classname' => 'core_enrol_external', 'methodname' => 'get_users_courses', 'classpath' => 'enrol/externallib.php', - 'description' => 'Get list of courses user is enrolled in', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_enrol_get_users_courses()', 'type' => 'read', 'capabilities'=> 'moodle/course:viewparticipants', ), + 'core_enrol_get_users_courses' => array( + 'classname' => 'core_enrol_external', + 'methodname' => 'get_users_courses', + 'classpath' => 'enrol/externallib.php', + 'description' => 'Get the list of courses where a user is enrolled in', + 'type' => 'read', + 'capabilities'=> 'moodle/course:viewparticipants', + ), + + // === Role related functions === + 'moodle_role_assign' => array( - 'classname' => 'moodle_enrol_external', - 'methodname' => 'role_assign', + 'classname' => 'core_role_external', + 'methodname' => 'assign_roles', + 'classpath' => 'enrol/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_role_assign_role()', + 'type' => 'write', + 'capabilities'=> 'moodle/role:assign', + ), + + 'core_role_assign_roles' => array( + 'classname' => 'core_role_external', + 'methodname' => 'assign_roles', 'classpath' => 'enrol/externallib.php', 'description' => 'Manual role assignments.', 'type' => 'write', @@ -196,8 +349,17 @@ $functions = array( ), 'moodle_role_unassign' => array( - 'classname' => 'moodle_enrol_external', - 'methodname' => 'role_unassign', + 'classname' => 'core_role_external', + 'methodname' => 'unassign_roles', + 'classpath' => 'enrol/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_role_unassign_role()', + 'type' => 'write', + 'capabilities'=> 'moodle/role:assign', + ), + + 'core_role_unassign_roles' => array( + 'classname' => 'core_role_external', + 'methodname' => 'unassign_roles', 'classpath' => 'enrol/externallib.php', 'description' => 'Manual role unassignments.', 'type' => 'write', @@ -207,7 +369,16 @@ $functions = array( // === course related functions === 'moodle_course_get_courses' => array( - 'classname' => 'moodle_course_external', + 'classname' => 'core_course_external', + 'methodname' => 'get_courses', + 'classpath' => 'course/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_course_get_courses()', + 'type' => 'read', + 'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses', + ), + + 'core_course_get_courses' => array( + 'classname' => 'core_course_external', 'methodname' => 'get_courses', 'classpath' => 'course/externallib.php', 'description' => 'Return course details', @@ -216,7 +387,16 @@ $functions = array( ), 'moodle_course_create_courses' => array( - 'classname' => 'moodle_course_external', + 'classname' => 'core_course_external', + 'methodname' => 'create_courses', + 'classpath' => 'course/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_course_create_courses()', + 'type' => 'write', + 'capabilities'=> 'moodle/course:create,moodle/course:visibility', + ), + + 'core_course_create_courses' => array( + 'classname' => 'core_course_external', 'methodname' => 'create_courses', 'classpath' => 'course/externallib.php', 'description' => 'Create new courses', @@ -227,8 +407,17 @@ $functions = array( // === message related functions === 'moodle_message_send_instantmessages' => array( - 'classname' => 'moodle_message_external', - 'methodname' => 'send_instantmessages', + 'classname' => 'core_message_external', + 'methodname' => 'send_instant_messages', + 'classpath' => 'message/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_message_send_instant_messages()', + 'type' => 'write', + 'capabilities'=> 'moodle/site:sendmessage', + ), + + 'core_message_send_instant_messages' => array( + 'classname' => 'core_message_external', + 'methodname' => 'send_instant_messages', 'classpath' => 'message/externallib.php', 'description' => 'Send instant messages', 'type' => 'write', @@ -238,7 +427,16 @@ $functions = array( // === notes related functions === 'moodle_notes_create_notes' => array( - 'classname' => 'moodle_notes_external', + 'classname' => 'core_notes_external', + 'methodname' => 'create_notes', + 'classpath' => 'notes/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_notes_create_notes()', + 'type' => 'write', + 'capabilities'=> 'moodle/notes:manage', + ), + + 'core_notes_create_notes' => array( + 'classname' => 'core_notes_external', 'methodname' => 'create_notes', 'classpath' => 'notes/externallib.php', 'description' => 'Create notes', @@ -249,8 +447,16 @@ $functions = array( // === webservice related functions === 'moodle_webservice_get_siteinfo' => array( - 'classname' => 'moodle_webservice_external', - 'methodname' => 'get_siteinfo', + 'classname' => 'core_webservice_external', + 'methodname' => 'get_site_info', + 'classpath' => 'webservice/externallib.php', + 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has be renamed as core_webservice_get_site_info()', + 'type' => 'read', + ), + + 'core_webservice_get_site_info' => array( + 'classname' => 'core_webservice_external', + 'methodname' => 'get_site_info', 'classpath' => 'webservice/externallib.php', 'description' => 'Return some site info / user info / list web service functions', 'type' => 'read', diff --git a/message/externallib.php b/message/externallib.php index 1a7a1606023..3e5a03a8b54 100644 --- a/message/externallib.php +++ b/message/externallib.php @@ -25,13 +25,16 @@ */ require_once("$CFG->libdir/externallib.php"); -class moodle_message_external extends external_api { +/** + * Message functions + */ +class core_message_external extends external_api { /** * Returns description of method parameters * @return external_function_parameters */ - public static function send_instantmessages_parameters() { + public static function send_instant_messages_parameters() { return new external_function_parameters( array( 'messages' => new external_multiple_structure( @@ -53,7 +56,7 @@ class moodle_message_external extends external_api { * @param $messages An array of message to send. * @return boolean */ - public static function send_instantmessages($messages = array()) { + public static function send_instant_messages($messages = array()) { global $CFG, $USER, $DB; require_once($CFG->dirroot . "/message/lib.php"); @@ -67,7 +70,7 @@ class moodle_message_external extends external_api { self::validate_context($context); require_capability('moodle/site:sendmessage', $context); - $params = self::validate_parameters(self::send_instantmessages_parameters(), array('messages' => $messages)); + $params = self::validate_parameters(self::send_instant_messages_parameters(), array('messages' => $messages)); //retrieve all tousers of the messages $receivers = array(); @@ -154,7 +157,7 @@ class moodle_message_external extends external_api { * Returns description of method result value * @return external_description */ - public static function send_instantmessages_returns() { + public static function send_instant_messages_returns() { return new external_multiple_structure( new external_single_structure( array( @@ -167,3 +170,39 @@ class moodle_message_external extends external_api { } } + +/** + * Deprecated message functions + * @deprecated since Moodle 2.2 please use core_message_external instead + */ +class moodle_message_external extends external_api { + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_message_external::send_instant_messages_parameters instead + * @return external_function_parameters + */ + public static function send_instantmessages_parameters() { + return core_message_external::send_instant_messages_parameters(); + } + + /** + * Send private messages from the current USER to other users + * @deprecated since Moodle 2.2 please use core_message_external::send_instant_messages instead + * @param $messages An array of message to send. + * @return boolean + */ + public static function send_instantmessages($messages = array()) { + return core_message_external::send_instant_messages($messages); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_message_external::send_instant_messages_returns instead + * @return external_description + */ + public static function send_instantmessages_returns() { + return core_message_external::send_instant_messages_returns(); + } + +} \ No newline at end of file diff --git a/notes/externallib.php b/notes/externallib.php index d5b9c5334d7..9b704832f04 100644 --- a/notes/externallib.php +++ b/notes/externallib.php @@ -25,7 +25,10 @@ */ require_once("$CFG->libdir/externallib.php"); -class moodle_notes_external extends external_api { +/** + * Notes functions + */ +class core_notes_external extends external_api { /** * Returns description of method parameters @@ -182,3 +185,41 @@ class moodle_notes_external extends external_api { } } + +/** + * Deprecated notes functions + * @deprecated since Moodle 2.2 please use core_notes_external instead + */ +class moodle_notes_external extends external_api { + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_notes_external::create_notes_parameters instead + * @return external_function_parameters + */ + public static function create_notes_parameters() { + return core_notes_external::create_notes_parameters(); + } + + /** + * Create notes about some users + * Note: code should be matching the /notes/edit.php checks + * and the /user/addnote.php checks. (they are similar cheks) + * @deprecated since Moodle 2.2 please use core_notes_external::create_notes instead + * @param array $notes An array of notes to create. + * @return array (success infos and fail infos) + */ + public static function create_notes($notes = array()) { + return core_notes_external::create_notes($notes); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_notes_external::create_notes_returns instead + * @return external_description + */ + public static function create_notes_returns() { + return core_notes_external::create_notes_returns(); + } + +} diff --git a/user/externallib.php b/user/externallib.php index 039ea3fbb94..0dce281a7cb 100644 --- a/user/externallib.php +++ b/user/externallib.php @@ -26,7 +26,10 @@ require_once("$CFG->libdir/externallib.php"); -class moodle_user_external extends external_api { +/** + * User functions + */ +class core_user_external extends external_api { /** * Returns description of method parameters @@ -196,6 +199,11 @@ class moodle_user_external extends external_api { ); } + /** + * Delete users + * @param array $userids + * @return null + */ public static function delete_users($userids) { global $CFG, $DB, $USER; require_once($CFG->dirroot."/user/lib.php"); @@ -282,6 +290,11 @@ class moodle_user_external extends external_api { ); } + /** + * Update users + * @param array $users + * @return null + */ public static function update_users($users) { global $CFG, $DB; require_once($CFG->dirroot."/user/lib.php"); @@ -469,7 +482,7 @@ class moodle_user_external extends external_api { * Returns description of method parameters * @return external_function_parameters */ - public static function get_course_participants_by_id_parameters() { + public static function get_course_user_profiles_parameters() { return new external_function_parameters( array( 'userlist' => new external_multiple_structure( @@ -489,10 +502,10 @@ class moodle_user_external extends external_api { * @param array $userlist array of user ids and according course ids * @return array An array of arrays describing course participants */ - public static function get_course_participants_by_id($userlist) { + public static function get_course_user_profiles($userlist) { global $CFG, $USER, $DB; require_once($CFG->dirroot . "/user/lib.php"); - $params = self::validate_parameters(self::get_course_participants_by_id_parameters(), array('userlist'=>$userlist)); + $params = self::validate_parameters(self::get_course_user_profiles_parameters(), array('userlist'=>$userlist)); $userids = array(); $courseids = array(); @@ -546,200 +559,7 @@ class moodle_user_external extends external_api { * Returns description of method result value * @return external_description */ - public static function get_course_participants_by_id_returns() { - return new external_multiple_structure( - new external_single_structure( - array( - 'id' => new external_value(PARAM_NUMBER, 'ID of the user'), - 'username' => new external_value(PARAM_RAW, 'Username policy is defined in Moodle security config', VALUE_OPTIONAL), - 'firstname' => new external_value(PARAM_NOTAGS, 'The first name(s) of the user', VALUE_OPTIONAL), - 'lastname' => new external_value(PARAM_NOTAGS, 'The family name of the user', VALUE_OPTIONAL), - 'fullname' => new external_value(PARAM_NOTAGS, 'The fullname of the user'), - 'email' => new external_value(PARAM_TEXT, 'An email address - allow email as root@localhost', VALUE_OPTIONAL), - 'address' => new external_value(PARAM_MULTILANG, 'Postal address', VALUE_OPTIONAL), - 'phone1' => new external_value(PARAM_NOTAGS, 'Phone 1', VALUE_OPTIONAL), - 'phone2' => new external_value(PARAM_NOTAGS, 'Phone 2', VALUE_OPTIONAL), - 'icq' => new external_value(PARAM_NOTAGS, 'icq number', VALUE_OPTIONAL), - 'skype' => new external_value(PARAM_NOTAGS, 'skype id', VALUE_OPTIONAL), - 'yahoo' => new external_value(PARAM_NOTAGS, 'yahoo id', VALUE_OPTIONAL), - 'aim' => new external_value(PARAM_NOTAGS, 'aim id', VALUE_OPTIONAL), - 'msn' => new external_value(PARAM_NOTAGS, 'msn number', VALUE_OPTIONAL), - 'department' => new external_value(PARAM_TEXT, 'department', VALUE_OPTIONAL), - 'institution' => new external_value(PARAM_TEXT, 'institution', VALUE_OPTIONAL), - 'interests' => new external_value(PARAM_TEXT, 'user interests (separated by commas)', VALUE_OPTIONAL), - 'firstaccess' => new external_value(PARAM_INT, 'first access to the site (0 if never)', VALUE_OPTIONAL), - 'lastaccess' => new external_value(PARAM_INT, 'last access to the site (0 if never)', VALUE_OPTIONAL), - 'description' => new external_value(PARAM_RAW, 'User profile description', VALUE_OPTIONAL), - 'descriptionformat' => new external_value(PARAM_INT, 'User profile description format', VALUE_OPTIONAL), - 'city' => new external_value(PARAM_NOTAGS, 'Home city of the user', VALUE_OPTIONAL), - 'url' => new external_value(PARAM_URL, 'URL of the user', VALUE_OPTIONAL), - 'country' => new external_value(PARAM_ALPHA, 'Home country code of the user, such as AU or CZ', VALUE_OPTIONAL), - 'profileimageurlsmall' => new external_value(PARAM_URL, 'User image profile URL - small version'), - 'profileimageurl' => new external_value(PARAM_URL, 'User image profile URL - big version'), - 'customfields' => new external_multiple_structure( - new external_single_structure( - array( - 'type' => new external_value(PARAM_ALPHANUMEXT, 'The type of the custom field - text field, checkbox...'), - 'value' => new external_value(PARAM_RAW, 'The value of the custom field'), - 'name' => new external_value(PARAM_RAW, 'The name of the custom field'), - 'shortname' => new external_value(PARAM_RAW, 'The shortname of the custom field - to be able to build the field class in the code'), - ) - ), 'User custom fields (also known as user profil fields)', VALUE_OPTIONAL), - 'groups' => new external_multiple_structure( - new external_single_structure( - array( - 'id' => new external_value(PARAM_INT, 'group id'), - 'name' => new external_value(PARAM_RAW, 'group name'), - 'description' => new external_value(PARAM_RAW, 'group description'), - ) - ), 'user groups', VALUE_OPTIONAL), - 'roles' => new external_multiple_structure( - new external_single_structure( - array( - 'roleid' => new external_value(PARAM_INT, 'role id'), - 'name' => new external_value(PARAM_RAW, 'role name'), - 'shortname' => new external_value(PARAM_ALPHANUMEXT, 'role shortname'), - 'sortorder' => new external_value(PARAM_INT, 'role sortorder') - ) - ), 'user roles', VALUE_OPTIONAL), - 'preferences' => new external_multiple_structure( - new external_single_structure( - array( - 'name' => new external_value(PARAM_ALPHANUMEXT, 'The name of the preferences'), - 'value' => new external_value(PARAM_RAW, 'The value of the custom field'), - ) - ), 'User preferences', VALUE_OPTIONAL), - 'enrolledcourses' => new external_multiple_structure( - new external_single_structure( - array( - 'id' => new external_value(PARAM_INT, 'Id of the course'), - 'fullname' => new external_value(PARAM_RAW, 'Fullname of the course'), - 'shortname' => new external_value(PARAM_RAW, 'Shortname of the course') - ) - ), 'Courses where the user is enrolled - limited by which courses the user is able to see', VALUE_OPTIONAL) - ) - ) - ); - } - - /** - * Returns description of method parameters - * @return external_function_parameters - */ - public static function get_users_by_courseid_parameters() { - return new external_function_parameters( - array( - 'courseid' => new external_value(PARAM_INT, 'course id'), - 'options' => new external_multiple_structure( - new external_single_structure( - array( - 'name' => new external_value(PARAM_ALPHANUMEXT, 'option name'), - 'value' => new external_value(PARAM_RAW, 'option value') - ) - ), 'method options'), - ) - ); - } - - /** - * Get course participants details - * @param int $courseid course id - * @param array $options options { - * 'name' => option name - * 'value' => option value - * } - * @return array An array of users - */ - public static function get_users_by_courseid($courseid, $options) { - global $CFG, $USER, $DB; - require_once($CFG->dirroot . "/user/lib.php"); - - $params = self::validate_parameters( - self::get_users_by_courseid_parameters(), - array( - 'courseid'=>$courseid, - 'options'=>$options - ) - ); - $withcapability = ''; - $groupid = 0; - $onlyactive = false; - foreach ($options as $option) { - switch ($option['name']) { - case 'withcapability': - $withcapability = $option['value']; - break; - case 'groupid': - $groupid = (int)$option['value']; - break; - case 'onlyactive': - $onlyactive = !empty($option['value']); - break; - } - } - - // to overwrite this parameter, you need role:review capability - if ($withcapability) { - require_capability('moodle/role:review', $coursecontext); - } - // need accessallgroups capability if you want to overwrite this option - if (!empty($groupid) && groups_is_member($groupid)) { - require_capability('moodle/site:accessallgroups', $context); - } - // to overwrite this option, you need course:enrolereview permission - if ($onlyactive) { - require_capability('moodle/course:enrolreview', $coursecontext); - } - - list($coursectxselect, $coursectxjoin) = context_instance_preload_sql('c.id', CONTEXT_COURSE, 'ctx'); - $coursesql = "SELECT c.* $coursectxselect - FROM {course} c $coursectxjoin - WHERE c.id = $courseid"; - $course = $DB->get_record_sql($coursesql); - context_instance_preload($course); - $coursecontext = get_context_instance(CONTEXT_COURSE, $params['courseid']); - if ($courseid == SITEID) { - $context = get_system_context(); - } else { - $context = $coursecontext; - } - try { - self::validate_context($context); - } catch (Exception $e) { - $exceptionparam = new stdClass(); - $exceptionparam->message = $e->getMessage(); - $exceptionparam->courseid = $params['courseid']; - throw new moodle_exception(get_string('errorcoursecontextnotvalid' , 'webservice', $exceptionparam)); - } - - list($enrolledsql, $enrolledparams) = get_enrolled_sql($coursecontext, $withcapability, $groupid, $onlyactive); - list($ctxselect, $ctxjoin) = context_instance_preload_sql('u.id', CONTEXT_USER, 'ctx'); - $records = $DB->get_records_sql($enrolledsql, $enrolledparams); - $sqlparams['courseid'] = $courseid; - $sql = "SELECT u.* $ctxselect - FROM {user} u $ctxjoin - WHERE u.id IN ($enrolledsql) - ORDER BY u.id ASC"; - $enrolledusers = $DB->get_recordset_sql($sql, $enrolledparams); - $users = array(); - foreach ($enrolledusers as $user) { - if (!empty($user->deleted)) { - continue; - } - context_instance_preload($user); - if ($userdetails = user_get_user_details($user, $course)) { - $users[] = $userdetails; - } - } - $enrolledusers->close(); - - return $users; - } - /** - * Returns description of method result value - * @return external_description - */ - public static function get_users_by_courseid_returns() { + public static function get_course_user_profiles_returns() { return new external_multiple_structure( new external_single_structure( array( @@ -815,3 +635,191 @@ class moodle_user_external extends external_api { ); } } + +/** + * Deprecated user functions + * @deprecated since Moodle 2.2 please use core_user_external instead + */ +class moodle_user_external extends external_api { + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_user_external::create_users_parameters instead + * @return external_function_parameters + */ + public static function create_users_parameters() { + return core_user_external::create_users_parameters(); + } + + /** + * Create one or more users + * @deprecated since Moodle 2.2 please use core_user_external::create_users instead + * @param array $users An array of users to create. + * @return array An array of arrays + */ + public static function create_users($users) { + return core_user_external::create_users($users); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_user_external::create_users_returns instead + * @return external_description + */ + public static function create_users_returns() { + return core_user_external::create_users_returns(); + } + + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_user_external::delete_users_parameters instead + * @return external_function_parameters + */ + public static function delete_users_parameters() { + return core_user_external::delete_users_parameters(); + } + + /** + * Delete users + * @deprecated since Moodle 2.2 please use core_user_external::delete_users instead + * @param array $userids + * @return null + */ + public static function delete_users($userids) { + return core_user_external::delete_users($userids); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_user_external::delete_users_returns instead + * @return external_description + */ + public static function delete_users_returns() { + return core_user_external::delete_users_returns(); + } + + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_user_external::update_users_parameters instead + * @return external_function_parameters + */ + public static function update_users_parameters() { + return core_user_external::update_users_parameters(); + } + + /** + * Update users + * @deprecated since Moodle 2.2 please use core_user_external::update_users instead + * @param array $users + * @return null + */ + public static function update_users($users) { + return core_user_external::update_users($users); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_user_external::update_users_returns instead + * @return external_description + */ + public static function update_users_returns() { + return core_user_external::update_users_returns(); + } + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_user_external::get_users_by_id_parameters instead + * @return external_function_parameters + */ + public static function get_users_by_id_parameters() { + return core_user_external::get_users_by_id_parameters(); + } + + /** + * Get user information + * - This function is matching the permissions of /user/profil.php + * - It is also matching some permissions from /user/editadvanced.php for the following fields: + * auth, confirmed, idnumber, lang, theme, timezone, mailformat + * @deprecated since Moodle 2.2 please use core_user_external::get_users_by_id instead + * @param array $userids array of user ids + * @return array An array of arrays describing users + */ + public static function get_users_by_id($userids) { + return core_user_external::get_users_by_id($userids); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_user_external::get_users_by_id_returns instead + * @return external_description + */ + public static function get_users_by_id_returns() { + return core_user_external::get_users_by_id_returns(); + } + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_user_external::get_course_user_profiles_parameters instead + * @return external_function_parameters + */ + public static function get_course_participants_by_id_parameters() { + return core_user_external::get_course_user_profiles_parameters(); + } + + /** + * Get course participant's details + * @deprecated since Moodle 2.2 please use core_user_external::get_course_user_profiles instead + * @param array $userlist array of user ids and according course ids + * @return array An array of arrays describing course participants + */ + public static function get_course_participants_by_id($userlist) { + return core_user_external::get_course_user_profiles($userlist); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_user_external::get_course_user_profiles_returns instead + * @return external_description + */ + public static function get_course_participants_by_id_returns() { + return core_user_external::get_course_user_profiles_returns(); + } + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_enrol_external::get_enrolled_users_parameters instead + * @return external_function_parameters + */ + public static function get_users_by_courseid_parameters() { + global $CFG; + require_once($CFG->dirroot . '/enrol/externallib.php'); + return core_enrol_external::get_enrolled_users_parameters(); + } + + /** + * Get course participants details + * @deprecated since Moodle 2.2 please use core_enrol_external::get_enrolled_users instead + * @param int $courseid course id + * @param array $options options { + * 'name' => option name + * 'value' => option value + * } + * @return array An array of users + */ + public static function get_users_by_courseid($courseid, $options) { + global $CFG; + require_once($CFG->dirroot . '/enrol/externallib.php'); + return core_enrol_external::get_enrolled_users($courseid, $options); + } + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_enrol_external::get_enrolled_users_returns instead + * @return external_description + */ + public static function get_users_by_courseid_returns() { + global $CFG; + require_once($CFG->dirroot . '/enrol/externallib.php'); + return core_enrol_external::get_enrolled_users_returns(); + } +} diff --git a/version.php b/version.php index 96eb18bbf2f..c1b1edfb26c 100644 --- a/version.php +++ b/version.php @@ -31,7 +31,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2011101900.01; // YYYYMMDD = weekly release date of this DEV branch +$version = 2011101900.02; // YYYYMMDD = weekly release date of this DEV branch // RR = release increments - 00 in DEV branches // .XX = incremental changes diff --git a/webservice/externallib.php b/webservice/externallib.php index 2d8db5176b1..18633224bc4 100644 --- a/webservice/externallib.php +++ b/webservice/externallib.php @@ -23,9 +23,16 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class moodle_webservice_external extends external_api { +/** + * Web service related functions + */ +class core_webservice_external extends external_api { - public static function get_siteinfo_parameters() { + /** + * Returns description of method parameters + * @return type + */ + public static function get_site_info_parameters() { return new external_function_parameters( array('serviceshortnames' => new external_multiple_structure ( new external_value( @@ -47,10 +54,10 @@ class moodle_webservice_external extends external_api { * @param array $serviceshortnames of service shortnames - the functions of these services will be returned * @return array */ - function get_siteinfo($serviceshortnames = array()) { + public function get_site_info($serviceshortnames = array()) { global $USER, $SITE, $CFG; - $params = self::validate_parameters(self::get_siteinfo_parameters(), + $params = self::validate_parameters(self::get_site_info_parameters(), array('serviceshortnames'=>$serviceshortnames)); $profileimageurl = moodle_url::make_pluginfile_url( @@ -112,7 +119,11 @@ class moodle_webservice_external extends external_api { ); } - public static function get_siteinfo_returns() { + /** + * Returns description of method result value + * @return type + */ + public static function get_site_info_returns() { return new external_single_structure( array( 'sitename' => new external_value(PARAM_RAW, 'site name'), @@ -133,4 +144,41 @@ class moodle_webservice_external extends external_api { ) ); } +} + +/** + * Deprecated web service related functions + * @deprecated since Moodle 2.2 please use core_webservice_external instead + */ +class moodle_webservice_external extends external_api { + + /** + * Returns description of method parameters + * @deprecated since Moodle 2.2 please use core_webservice_external::get_site_info_parameters instead + * @return type + */ + public static function get_siteinfo_parameters() { + return core_webservice_external::get_site_info_parameters(); + } + + /** + * Return user information including profile picture + basic site information + * Note: + * - no capability checking because we return just known information by logged user + * @deprecated since Moodle 2.2 please use core_webservice_external::get_site_info instead + * @param array $serviceshortnames of service shortnames - the functions of these services will be returned + * @return array + */ + function get_siteinfo($serviceshortnames = array()) { + return core_webservice_external::get_site_info($serviceshortnames); + } + + /** + * Returns description of method result value + * @deprecated since Moodle 2.2 please use core_webservice_external::get_site_info_returns instead + * @return type + */ + public static function get_siteinfo_returns() { + return core_webservice_external::get_site_info_returns(); + } } \ No newline at end of file