diff --git a/admin/webservice/testclient_forms.php b/admin/webservice/testclient_forms.php index cc958c2f9c6..b01b78bb746 100644 --- a/admin/webservice/testclient_forms.php +++ b/admin/webservice/testclient_forms.php @@ -28,768 +28,6 @@ class webservice_test_client_form extends moodleform { // === Test client forms === -class moodle_user_create_users_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - - /// specific to the create users function - $mform->addElement('text', 'username', 'username'); - $mform->setType('username', core_user::get_property_type('username')); - $mform->addElement('text', 'password', 'password'); - $mform->setType('password', core_user::get_property_type('password')); - $mform->addElement('text', 'firstname', 'firstname'); - $mform->setType('firstname', core_user::get_property_type('firstname')); - $mform->addElement('text', 'lastname', 'lastname'); - $mform->setType('lastname', core_user::get_property_type('lastname')); - $mform->addElement('text', 'email', 'email'); - $mform->setType('email', core_user::get_property_type('email')); - - $mform->addElement('text', 'customfieldtype', 'customfieldtype'); - $mform->setType('customfieldtype', PARAM_RAW); - $mform->addElement('text', 'customfieldvalue', 'customfieldvalue'); - $mform->setType('customfieldvalue', PARAM_RAW); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - - - $mform->addElement('static', 'warning', '', get_string('executewarnign', 'webservice')); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - - //set customfields - if (!empty($data->customfieldtype)) { - $data->customfields = array(array('type' => $data->customfieldtype, 'value' => $data->customfieldvalue)); - } - - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - unset($data->customfieldtype); - unset($data->customfieldvalue); - - $params = array(); - $params['users'] = array(); - $params['users'][] = (array)$data; - - return $params; - } -} - - -class moodle_user_update_users_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - - /// specific to the create users function - $mform->addElement('text', 'id', 'id'); - $mform->addRule('id', get_string('required'), 'required', null, 'client'); - $mform->setType('id', core_user::get_property_type('id')); - $mform->addElement('text', 'username', 'username'); - $mform->setType('username', core_user::get_property_type('username')); - $mform->addElement('text', 'password', 'password'); - $mform->setType('password', core_user::get_property_type('password')); - $mform->addElement('text', 'firstname', 'firstname'); - $mform->setType('firstname', core_user::get_property_type('firstname')); - $mform->addElement('text', 'lastname', 'lastname'); - $mform->setType('lastname', core_user::get_property_type('lastname')); - $mform->addElement('text', 'email', 'email'); - $mform->setType('email', core_user::get_property_type('email')); - - - $mform->addElement('text', 'customfieldtype', 'customfieldtype'); - $mform->setType('customfieldtype', PARAM_RAW); - $mform->addElement('text', 'customfieldvalue', 'customfieldvalue'); - $mform->setType('customfieldvalue', PARAM_RAW); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - - - $mform->addElement('static', 'warning', '', get_string('executewarnign', 'webservice')); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - - //set customfields - if (!empty($data->customfieldtype)) { - $data->customfields = array(array('type' => $data->customfieldtype, 'value' => $data->customfieldvalue)); - } - - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - unset($data->customfieldtype); - unset($data->customfieldvalue); - - foreach($data as $key => $value) { - if (empty($value)) { - unset($data->{$key}); - } - } - - $params = array(); - $params['users'] = array(); - $params['users'][] = (array)$data; - - return $params; - } -} - - -class moodle_user_delete_users_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - - /// beginning of specific code to the create users function - $mform->addElement('text', 'userids[0]', 'userids[0]'); - $mform->addElement('text', 'userids[1]', 'userids[1]'); - $mform->addElement('text', 'userids[2]', 'userids[2]'); - $mform->addElement('text', 'userids[3]', 'userids[3]'); - $mform->setType('userids', core_user::get_property_type('id')); - /// end of specific code to the create users function - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - $mform->addElement('static', 'warning', '', get_string('executewarnign', 'webservice')); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - /// beginning of specific code to the create users form - $params = array(); - $params['userids'] = array(); - for ($i=0; $i<10; $i++) { - if (empty($data->userids[$i])) { - continue; - } - $params['userids'][] = $data->userids[$i]; - } - /// end of specific code to the create users function - - return $params; - } -} - - -class moodle_user_get_users_by_id_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - - /// beginning of specific code to the create users function - $mform->addElement('text', 'userids[0]', 'userids[0]'); - $mform->addElement('text', 'userids[1]', 'userids[1]'); - $mform->addElement('text', 'userids[2]', 'userids[2]'); - $mform->addElement('text', 'userids[3]', 'userids[3]'); - $mform->setType('userids', core_user::get_property_type('id')); - /// end of specific code to the create users function - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - - - $mform->addElement('static', 'warning', '', get_string('executewarnign', 'webservice')); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - /// beginning of specific code to the create users form - $params = array(); - $params['userids'] = array(); - for ($i=0; $i<10; $i++) { - if (empty($data->userids[$i])) { - continue; - } - $params['userids'][] = $data->userids[$i]; - } - /// end of specific code to the create users function - - return $params; - } -} - -class moodle_group_create_groups_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - - $mform->addElement('text', 'courseid', 'courseid'); - $mform->setType('courseid', PARAM_INT); - $mform->addElement('text', 'name', 'name'); - $mform->setType('name', PARAM_TEXT); - $mform->addElement('text', 'description', 'description'); - $mform->setType('description', PARAM_TEXT); - $mform->addElement('text', 'enrolmentkey', 'enrolmentkey'); - $mform->setType('enrolmentkey', PARAM_RAW); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - - - $mform->addElement('static', 'warning', '', get_string('executewarnign', 'webservice')); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - $params = array(); - $params['groups'] = array(); - $params['groups'][] = (array)$data; - - return $params; - } -} - -class moodle_group_get_groups_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - $mform->addElement('text', 'groupids[0]', 'groupids[0]'); - $mform->addElement('text', 'groupids[1]', 'groupids[1]'); - $mform->addElement('text', 'groupids[2]', 'groupids[2]'); - $mform->addElement('text', 'groupids[3]', 'groupids[3]'); - $mform->setType('groupids', PARAM_INT); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - $params = array(); - $params['groupids'] = array(); - for ($i=0; $i<10; $i++) { - if (empty($data->groupids[$i])) { - continue; - } - $params['groupids'][] = $data->groupids[$i]; - } - - return $params; - } -} - -class moodle_group_get_course_groups_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - $mform->addElement('text', 'courseid', 'courseid'); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - $params = array(); - $params['courseid'] = $data->courseid; - - return $params; - } -} - -class moodle_group_delete_groups_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - $mform->addElement('text', 'groupids[0]', 'groupids[0]'); - $mform->addElement('text', 'groupids[1]', 'groupids[1]'); - $mform->addElement('text', 'groupids[2]', 'groupids[2]'); - $mform->addElement('text', 'groupids[3]', 'groupids[3]'); - $mform->setType('groupids', PARAM_INT); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - $mform->addElement('static', 'warning', '', get_string('executewarnign', 'webservice')); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - $params = array(); - $params['groupids'] = array(); - for ($i=0; $i<10; $i++) { - if (empty($data->groupids[$i])) { - continue; - } - $params['groupids'][] = $data->groupids[$i]; - } - - return $params; - } -} - -class moodle_group_get_groupmembers_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - $mform->addElement('text', 'groupids[0]', 'groupids[0]'); - $mform->addElement('text', 'groupids[1]', 'groupids[1]'); - $mform->addElement('text', 'groupids[2]', 'groupids[2]'); - $mform->addElement('text', 'groupids[3]', 'groupids[3]'); - $mform->setType('groupids', PARAM_INT); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - $params = array(); - $params['groupids'] = array(); - for ($i=0; $i<10; $i++) { - if (empty($data->groupids[$i])) { - continue; - } - $params['groupids'][] = $data->groupids[$i]; - } - - return $params; - } -} - -class moodle_group_add_groupmembers_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - $mform->addElement('text', 'userid[0]', 'userid[0]'); - $mform->addElement('text', 'groupid[0]', 'groupid[0]'); - $mform->addElement('text', 'userid[1]', 'userid[1]'); - $mform->addElement('text', 'groupid[1]', 'groupid[1]'); - $mform->setType('userid', core_user::get_property_type('id')); - $mform->setType('groupids', PARAM_INT); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - $params = array(); - $params['members'] = array(); - for ($i=0; $i<10; $i++) { - if (empty($data->groupid[$i]) or empty($data->userid[$i])) { - continue; - } - $params['members'][] = array('userid'=>$data->userid[$i], 'groupid'=>$data->groupid[$i]); - } - - return $params; - } -} - -class moodle_group_delete_groupmembers_form extends moodleform { - public function definition() { - global $CFG; - - $mform = $this->_form; - - $mform->addElement('header', 'wstestclienthdr', get_string('testclient', 'webservice')); - - //note: these values are intentionally PARAM_RAW - we want users to test any rubbish as parameters - $data = $this->_customdata; - if ($data['authmethod'] == 'simple') { - $mform->addElement('text', 'wsusername', 'wsusername'); - $mform->setType('wsusername', core_user::get_property_type('username')); - $mform->addElement('text', 'wspassword', 'wspassword'); - $mform->setType('wspassword', core_user::get_property_type('password')); - } else if ($data['authmethod'] == 'token') { - $mform->addElement('text', 'token', 'token'); - $mform->setType('token', PARAM_RAW_TRIMMED); - } - - $mform->addElement('hidden', 'authmethod', $data['authmethod']); - $mform->setType('authmethod', core_user::get_property_type('auth')); - $mform->addElement('text', 'userid[0]', 'userid[0]'); - $mform->addElement('text', 'groupid[0]', 'groupid[0]'); - $mform->addElement('text', 'userid[1]', 'userid[1]'); - $mform->addElement('text', 'groupid[1]', 'groupid[1]'); - $mform->setType('userid', PARAM_INT); - $mform->setType('groupids', PARAM_INT); - - $mform->addElement('hidden', 'function'); - $mform->setType('function', PARAM_PLUGIN); - - $mform->addElement('hidden', 'protocol'); - $mform->setType('protocol', PARAM_ALPHA); - - $this->add_action_buttons(true, get_string('execute', 'webservice')); - } - - public function get_params() { - if (!$data = $this->get_data()) { - return null; - } - // remove unused from form data - unset($data->submitbutton); - unset($data->protocol); - unset($data->function); - unset($data->wsusername); - unset($data->wspassword); - unset($data->token); - unset($data->authmethod); - - $params = array(); - $params['members'] = array(); - for ($i=0; $i<10; $i++) { - if (empty($data->groupid[$i]) or empty($data->userid[$i])) { - continue; - } - $params['members'][] = array('userid'=>$data->userid[$i], 'groupid'=>$data->groupid[$i]); - } - - return $params; - } -} - /** * Form class for create_categories() web service function test. * diff --git a/course/externallib.php b/course/externallib.php index 7c5d975207e..da654a2fcd5 100644 --- a/course/externallib.php +++ b/course/externallib.php @@ -2495,108 +2495,3 @@ class core_course_external extends external_api { } } - -/** - * Deprecated course external functions - * - * @package core_course - * @copyright 2009 Petr Skodak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not use this class any more. - * @see core_course_external - */ -class moodle_course_external extends external_api { - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_course_external::get_courses_parameters() - */ - public static function get_courses_parameters() { - return core_course_external::get_courses_parameters(); - } - - /** - * Get courses - * - * @param array $options - * @return array - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_course_external::get_courses() - */ - public static function get_courses($options) { - return core_course_external::get_courses($options); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_course_external::get_courses_returns() - */ - public static function get_courses_returns() { - return core_course_external::get_courses_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_courses_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_course_external::create_courses_parameters() - */ - public static function create_courses_parameters() { - return core_course_external::create_courses_parameters(); - } - - /** - * Create courses - * - * @param array $courses - * @return array courses (id and shortname only) - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_course_external::create_courses() - */ - public static function create_courses($courses) { - return core_course_external::create_courses($courses); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_course_external::create_courses_returns() - */ - public static function create_courses_returns() { - return core_course_external::create_courses_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function create_courses_is_deprecated() { - return true; - } -} diff --git a/enrol/externallib.php b/enrol/externallib.php index 959df2104da..8f8347b3cc1 100644 --- a/enrol/externallib.php +++ b/enrol/externallib.php @@ -839,303 +839,3 @@ class core_role_external extends external_api { return null; } } - - -/** - * Deprecated enrol and role external functions - * - * @package core_enrol - * @copyright 2010 Jerome Mouneyrac - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not use this class any more. - * @see core_enrol_external - * @see core_role_external - */ -class moodle_enrol_external extends external_api { - - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_enrol_external::get_enrolled_users_parameters() - */ - public static function get_enrolled_users_parameters() { - return new external_function_parameters( - array( - 'courseid' => new external_value(PARAM_INT, 'Course id'), - 'withcapability' => new external_value(PARAM_CAPABILITY, 'User should have this capability', VALUE_DEFAULT, null), - 'groupid' => new external_value(PARAM_INT, 'Group id, null means all groups', VALUE_DEFAULT, null), - 'onlyactive' => new external_value(PARAM_INT, 'True means only active, false means all participants', VALUE_DEFAULT, 0), - ) - ); - } - - /** - * Get list of course participants. - * - * @param int $courseid - * @param text $withcapability - * @param int $groupid - * @param bool $onlyactive - * @return array of course participants - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_enrol_external::get_enrolled_users() - */ - public static function get_enrolled_users($courseid, $withcapability = null, $groupid = null, $onlyactive = false) { - global $DB, $CFG, $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_enrolled_users_parameters(), array( - 'courseid'=>$courseid, - 'withcapability'=>$withcapability, - 'groupid'=>$groupid, - 'onlyactive'=>$onlyactive) - ); - - $coursecontext = context_course::instance($params['courseid'], IGNORE_MISSING); - if ($courseid == SITEID) { - $context = context_system::instance(); - } 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('errorcoursecontextnotvalid' , 'webservice', '', $exceptionparam); - } - - if ($courseid == SITEID) { - require_capability('moodle/site:viewparticipants', $context); - } else { - require_capability('moodle/course:viewparticipants', $context); - } - - if ($withcapability) { - require_capability('moodle/role:review', $coursecontext); - } - if ($groupid && groups_is_member($groupid)) { - require_capability('moodle/site:accessallgroups', $coursecontext); - } - if ($onlyactive) { - require_capability('moodle/course:enrolreview', $coursecontext); - } - - list($sqlparams, $params) = get_enrolled_sql($coursecontext, $withcapability, $groupid, $onlyactive); - $sql = "SELECT ue.userid, e.courseid, u.firstname, u.lastname, u.username, c.id as usercontextid - FROM {user_enrolments} ue - JOIN {enrol} e ON (e.id = ue.enrolid) - JOIN {user} u ON (ue.userid = u.id) - JOIN {context} c ON (u.id = c.instanceid AND contextlevel = " . CONTEXT_USER . ") - WHERE e.courseid = :courseid AND ue.userid IN ($sqlparams) - GROUP BY ue.userid, e.courseid, u.firstname, u.lastname, u.username, c.id"; - $params['courseid'] = $courseid; - $enrolledusers = $DB->get_records_sql($sql, $params); - $result = array(); - $isadmin = is_siteadmin($USER); - $canviewfullnames = has_capability('moodle/site:viewfullnames', $context); - foreach ($enrolledusers as $enrolleduser) { - $profilimgurl = moodle_url::make_pluginfile_url($enrolleduser->usercontextid, 'user', 'icon', NULL, '/', 'f1'); - $profilimgurlsmall = moodle_url::make_pluginfile_url($enrolleduser->usercontextid, 'user', 'icon', NULL, '/', 'f2'); - $resultuser = array( - 'courseid' => $enrolleduser->courseid, - 'userid' => $enrolleduser->userid, - 'fullname' => fullname($enrolleduser), - 'profileimgurl' => $profilimgurl->out(false), - 'profileimgurlsmall' => $profilimgurlsmall->out(false) - ); - // check if we can return username - if ($isadmin) { - $resultuser['username'] = $enrolleduser->username; - } - // check if we can return first and last name - if ($isadmin or $canviewfullnames) { - $resultuser['firstname'] = $enrolleduser->firstname; - $resultuser['lastname'] = $enrolleduser->lastname; - } - $result[] = $resultuser; - } - - return $result; - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_enrol_external::get_enrolled_users_returns() - */ - public static function get_enrolled_users_returns() { - return new external_multiple_structure( - new external_single_structure( - array( - 'courseid' => new external_value(PARAM_INT, 'id of course'), - 'userid' => new external_value(PARAM_INT, 'id of user'), - 'firstname' => new external_value(PARAM_RAW, 'first name of user', VALUE_OPTIONAL), - 'lastname' => new external_value(PARAM_RAW, 'last name of user', VALUE_OPTIONAL), - 'fullname' => new external_value(PARAM_RAW, 'fullname of user'), - 'username' => new external_value(PARAM_RAW, 'username of user', VALUE_OPTIONAL), - 'profileimgurl' => new external_value(PARAM_URL, 'url of the profile image'), - 'profileimgurlsmall' => new external_value(PARAM_URL, 'url of the profile image (small version)') - ) - ) - ); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_enrolled_users_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_enrol_external::get_users_courses_parameters() - */ - public static function get_users_courses_parameters() { - 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. - * - * @param int $userid - * @return array of courses - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see use core_enrol_external::get_users_courses() - */ - public static function get_users_courses($userid) { - return core_enrol_external::get_users_courses($userid); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_enrol_external::get_users_courses_returns() - */ - public static function get_users_courses_returns() { - return core_enrol_external::get_users_courses_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_users_courses_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_role_external::assign_roles_parameters() - */ - public static function role_assign_parameters() { - return core_role_external::assign_roles_parameters(); - } - - /** - * Manual role assignments to users - * - * @param array $assignments An array of manual role assignment - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_role_external::assign_roles() - */ - public static function role_assign($assignments) { - return core_role_external::assign_roles($assignments); - } - - /** - * Returns description of method result value - * - * @return null - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_role_external::assign_roles_returns() - */ - public static function role_assign_returns() { - return core_role_external::assign_roles_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function role_assign_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_role_external::unassign_roles_parameters() - */ - public static function role_unassign_parameters() { - return core_role_external::unassign_roles_parameters(); - } - - /** - * Unassign roles from users - * - * @param array $unassignments An array of unassignment - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_role_external::unassign_roles() - */ - public static function role_unassign($unassignments) { - return core_role_external::unassign_roles($unassignments); - } - - /** - * Returns description of method result value - * - * @return null - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_role_external::unassign_roles_returns() - */ - public static function role_unassign_returns() { - return core_role_external::unassign_roles_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function role_unassign_is_deprecated() { - return true; - } -} diff --git a/enrol/manual/db/services.php b/enrol/manual/db/services.php index 85224464225..7415421ae24 100644 --- a/enrol/manual/db/services.php +++ b/enrol/manual/db/services.php @@ -26,15 +26,6 @@ $functions = array( // === enrol related functions === - 'moodle_enrol_manual_enrol_users' => array( - 'classname' => 'moodle_enrol_manual_external', - 'methodname' => 'manual_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', diff --git a/enrol/manual/externallib.php b/enrol/manual/externallib.php index 8a9871d3c04..a538ac33429 100644 --- a/enrol/manual/externallib.php +++ b/enrol/manual/externallib.php @@ -226,62 +226,3 @@ class enrol_manual_external extends external_api { } } - -/** - * Deprecated manual enrolment external functions. - * - * @package enrol_manual - * @copyright 2011 Jerome Mouneyrac - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not use this class any more. - * @see enrol_manual_external - */ -class moodle_enrol_manual_external extends external_api { - - /** - * Returns description of method parameters. - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see enrol_manual_external::enrol_users_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. - * - * @param array $enrolments An array of user enrolment - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see enrol_manual_external::enrol_users() - */ - public static function manual_enrol_users($enrolments) { - return enrol_manual_external::enrol_users($enrolments); - } - - /** - * Returns description of method result value. - * - * @return nul - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see enrol_manual_external::enrol_users_returns() - */ - public static function manual_enrol_users_returns() { - return enrol_manual_external::enrol_users_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function manual_enrol_users_is_deprecated() { - return true; - } -} diff --git a/files/externallib.php b/files/externallib.php index 3a4d051cbae..4e146247148 100644 --- a/files/externallib.php +++ b/files/externallib.php @@ -307,9 +307,9 @@ class core_files_external extends external_api { $filepath = '/'; } - // Only allow uploads to draft or private areas (private is deprecated but still supported) - if (!($fileinfo['component'] == 'user' and in_array($fileinfo['filearea'], array('private', 'draft')))) { - throw new coding_exception('File can be uploaded to user private or draft areas only'); + // Only allow uploads to draft area + if (!($fileinfo['component'] == 'user' and $fileinfo['filearea'] == 'draft')) { + throw new coding_exception('File can be uploaded to user draft area only'); } else { $component = 'user'; $filearea = $fileinfo['filearea']; @@ -336,8 +336,7 @@ class core_files_external extends external_api { $context = self::get_context_from_params($fileinfo); self::validate_context($context); if (($fileinfo['component'] == 'user' and $fileinfo['filearea'] == 'private')) { - require_capability('moodle/user:manageownfiles', $context); - debugging('Uploading directly to user private files area is deprecated. Upload to a draft area and then move the files with core_user::add_user_private_files'); + throw new moodle_exception('privatefilesupload'); } $browser = get_file_browser(); @@ -386,128 +385,3 @@ class core_files_external extends external_api { ); } } - -/** - * Deprecated files external functions - * - * @package core_files - * @copyright 2010 Dongsheng Cai - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not use this class any more. - * @see core_files_external - */ -class moodle_file_external extends external_api { - - /** - * Returns description of get_files parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_files_external::get_files_parameters() - */ - public static function get_files_parameters() { - return core_files_external::get_files_parameters(); - } - - /** - * Return moodle files listing - * - * @param int $contextid - * @param int $component - * @param int $filearea - * @param int $itemid - * @param string $filepath - * @param string $filename - * @param int $modified timestamp to return files changed after this time. - * @param string $contextlevel The context level for the file location. - * @param int $instanceid The instance id for where the file is located. - * @return array - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_files_external::get_files() - */ - public static function get_files($contextid, $component, $filearea, $itemid, $filepath, $filename, $modified = null, - $contextlevel = null, $instanceid = null) { - return core_files_external::get_files($contextid, $component, $filearea, $itemid, $filepath, $filename, - $modified, $contextlevel, $instanceid); - } - - /** - * Returns description of get_files returns - * - * @return external_single_structure - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_files_external::get_files_returns() - */ - public static function get_files_returns() { - return core_files_external::get_files_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_files_is_deprecated() { - return true; - } - - /** - * Returns description of upload parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_files_external::upload_parameters() - */ - public static function upload_parameters() { - return core_files_external::upload_parameters(); - } - - /** - * Uploading a file to moodle - * - * @param int $contextid - * @param string $component - * @param string $filearea - * @param int $itemid - * @param string $filepath - * @param string $filename - * @param string $filecontent - * @param string $contextlevel Context level (block, course, coursecat, system, user or module) - * @param int $instanceid Instance id of the item associated with the context level - * @return array - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_files_external::upload() - */ - public static function upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent, $contextlevel, $instanceid) { - return core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, - $filecontent, $contextlevel, $instanceid); - } - - /** - * Returns description of upload returns - * - * @return external_single_structure - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_files_external::upload_returns() - */ - public static function upload_returns() { - return core_files_external::upload_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function upload_is_deprecated() { - return true; - } - -} diff --git a/files/tests/externallib_test.php b/files/tests/externallib_test.php index d062a68751c..c464856ac28 100644 --- a/files/tests/externallib_test.php +++ b/files/tests/externallib_test.php @@ -111,7 +111,7 @@ class core_files_externallib_testcase extends advanced_testcase { $context = context_user::instance($USER->id); $contextid = $context->id; $component = "backup"; - $filearea = "private"; + $filearea = "draft"; $itemid = 0; $filepath = "/"; $filename = "Simple3.txt"; @@ -126,7 +126,7 @@ class core_files_externallib_testcase extends advanced_testcase { } /* - * Make sure only private or draft areas are allowed in core_files_external::upload(). + * Make sure only draft areas are allowed in core_files_external::upload(). */ public function test_upload_param_area() { global $USER; @@ -152,35 +152,6 @@ class core_files_externallib_testcase extends advanced_testcase { $this->assertNotEmpty($file); } - /* - * Make sure core_files_external::upload() works without new parameters. - */ - public function test_upload_without_new_param() { - global $USER; - - $this->resetAfterTest(); - $this->setAdminUser(); - $context = context_user::instance($USER->id); - $contextid = $context->id; - $component = "user"; - $filearea = "private"; - $itemid = 0; - $filepath = "/"; - $filename = "Simple4.txt"; - $filecontent = base64_encode("Let us create a nice simple file"); - - $fileinfo = @core_files_external::upload($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent); - $fileinfo = external_api::clean_returnvalue(core_files_external::upload_returns(), $fileinfo); - - // Assert debugging called (deprecation warning). - $this->assertDebuggingCalled(); - - // Make sure the file is created. - $browser = get_file_browser(); - $file = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename); - $this->assertNotEmpty($file); - } - /** * Test getting a list of files with and without a context ID. */ diff --git a/grade/externallib.php b/grade/externallib.php deleted file mode 100644 index 98deb9bfa60..00000000000 --- a/grade/externallib.php +++ /dev/null @@ -1,59 +0,0 @@ -. - -/** - * External grading API - * - * @package core_grading - * @since Moodle 2.5 - * @copyright 2013 Paul Charsley - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */ - -defined('MOODLE_INTERNAL') || die; - -// NOTE: add any new core_grades_ classes to /lib/classes/ directory. - -/** - * core grading functions. Renamed to core_grading_external - * - * @since Moodle 2.5 - * @deprecated since 2.6 See MDL-30085. Please do not use this class any more. - * @see core_grading_external - */ -class core_grade_external extends external_api { - - public static function get_definitions_parameters() { - return core_grading_external::get_definitions_parameters(); - } - - public static function get_definitions($cmids, $areaname, $activeonly = false) { - return core_grading_external::get_definitions($cmids, $areaname, $activeonly); - } - - public static function get_definitions_returns() { - return core_grading_external::get_definitions_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_definitions_is_deprecated() { - return true; - } -} diff --git a/group/externallib.php b/group/externallib.php index b530283e871..5359a373f17 100644 --- a/group/externallib.php +++ b/group/externallib.php @@ -1473,336 +1473,3 @@ class core_group_external extends external_api { } } - -/** - * Deprecated group external functions - * - * @package core_group - * @copyright 2009 Petr Skodak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not use this class any more. - * @see core_group_external - */ -class moodle_group_external extends external_api { - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::create_groups_parameters() - */ - public static function create_groups_parameters() { - return core_group_external::create_groups_parameters(); - } - - /** - * Create groups - * - * @param array $groups array of group description arrays (with keys groupname and courseid) - * @return array of newly created groups - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see use core_group_external::create_groups() - */ - public static function create_groups($groups) { - return core_group_external::create_groups($groups); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::create_groups_returns() - */ - public static function create_groups_returns() { - return core_group_external::create_groups_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function create_groups_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_groups_parameters() - */ - public static function get_groups_parameters() { - return core_group_external::get_groups_parameters(); - } - - /** - * Get groups definition specified by ids - * - * @param array $groupids arrays of group ids - * @return array of group objects (id, courseid, name, enrolmentkey) - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_groups() - */ - public static function get_groups($groupids) { - return core_group_external::get_groups($groupids); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_groups_returns() - */ - public static function get_groups_returns() { - return core_group_external::get_groups_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_groups_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_course_groups_parameters() - */ - public static function get_course_groups_parameters() { - return core_group_external::get_course_groups_parameters(); - } - - /** - * Get all groups in the specified course - * - * @param int $courseid id of course - * @return array of group objects (id, courseid, name, enrolmentkey) - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_course_groups() - */ - public static function get_course_groups($courseid) { - return core_group_external::get_course_groups($courseid); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_course_groups_returns() - */ - public static function get_course_groups_returns() { - return core_group_external::get_course_groups_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_course_groups_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::delete_group_members_parameters() - */ - public static function delete_groups_parameters() { - return core_group_external::delete_groups_parameters(); - } - - /** - * Delete groups - * - * @param array $groupids array of group ids - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::delete_groups() - */ - public static function delete_groups($groupids) { - return core_group_external::delete_groups($groupids); - } - - /** - * Returns description of method result value - * - * @return null - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::delete_group_members_returns() - */ - public static function delete_groups_returns() { - return core_group_external::delete_groups_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function delete_groups_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_group_members_parameters() - */ - public static function get_groupmembers_parameters() { - return core_group_external::get_group_members_parameters(); - } - - /** - * Return all members for a group - * - * @param array $groupids array of group ids - * @return array with group id keys containing arrays of user ids - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_group_members() - */ - public static function get_groupmembers($groupids) { - return core_group_external::get_group_members($groupids); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::get_group_members_returns() - */ - public static function get_groupmembers_returns() { - return core_group_external::get_group_members_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_groupmembers_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::add_group_members_parameters() - */ - public static function add_groupmembers_parameters() { - return core_group_external::add_group_members_parameters(); - } - - /** - * Add group members - * - * @param array $members of arrays with keys userid, groupid - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see use core_group_external::add_group_members() - */ - public static function add_groupmembers($members) { - return core_group_external::add_group_members($members); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::add_group_members_returns() - */ - public static function add_groupmembers_returns() { - return core_group_external::add_group_members_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function add_groupmembers_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::delete_group_members_parameters() - */ - public static function delete_groupmembers_parameters() { - return core_group_external::delete_group_members_parameters(); - } - - /** - * Delete group members - * - * @param array $members of arrays with keys userid, groupid - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::delete_group_members() - */ - public static function delete_groupmembers($members) { - return core_group_external::delete_group_members($members); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_group_external::delete_group_members_returns() - */ - public static function delete_groupmembers_returns() { - return core_group_external::delete_group_members_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function delete_groupmembers_is_deprecated() { - return true; - } - -} diff --git a/lang/en/error.php b/lang/en/error.php index 5400fd71fa6..6e8f4157386 100644 --- a/lang/en/error.php +++ b/lang/en/error.php @@ -455,6 +455,7 @@ $string['prefixcannotbeempty'] = '

Error: database table prefix cannot be empt

The site administrator must fix this problem.

'; $string['prefixtoolong'] = '

Error: database table prefix is too long ({$a->dbfamily})

The site administrator must fix this problem. Maximum length for table prefixes in {$a->dbfamily} is {$a->maxlength} characters.

'; +$string['privatefilesupload'] = 'Uploading directly to user private files area is no longer supported. Upload to a draft area and then move the files with core_user::add_user_private_files'; $string['processingstops'] = 'Processing stops here. Remaining records ignored.'; $string['querystringcannotbeempty'] = 'The query string cannot be empty.'; $string['redirecterrordetected'] = 'Unsupported redirect detected, script execution terminated'; diff --git a/lib/db/services.php b/lib/db/services.php index f9ae967ad0f..b52e50035a0 100644 --- a/lib/db/services.php +++ b/lib/db/services.php @@ -34,682 +34,157 @@ */ $functions = array( - - // Cohort related functions. - - 'core_cohort_create_cohorts' => array( - 'classname' => 'core_cohort_external', - 'methodname' => 'create_cohorts', - 'classpath' => 'cohort/externallib.php', - 'description' => 'Creates new cohorts.', - 'type' => 'write', - 'capabilities'=> 'moodle/cohort:manage', + 'core_badges_get_user_badges' => array( + 'classname' => 'core_badges_external', + 'methodname' => 'get_user_badges', + 'description' => 'Returns the list of badges awarded to a user.', + 'type' => 'read', + 'capabilities' => 'moodle/badges:viewotherbadges' ), - - 'core_cohort_delete_cohorts' => array( - 'classname' => 'core_cohort_external', - 'methodname' => 'delete_cohorts', - 'classpath' => 'cohort/externallib.php', - 'description' => 'Deletes all specified cohorts.', - 'type' => 'delete', - 'capabilities'=> 'moodle/cohort:manage', + 'core_calendar_create_calendar_events' => array( + 'classname' => 'core_calendar_external', + 'methodname' => 'create_calendar_events', + 'description' => 'Create calendar events', + 'classpath' => 'calendar/externallib.php', + 'type' => 'write', + 'capabilities' => 'moodle/calendar:manageentries, moodle/calendar:manageownentries, moodle/calendar:managegroupentries' ), - - 'core_cohort_get_cohorts' => array( - 'classname' => 'core_cohort_external', - 'methodname' => 'get_cohorts', - 'classpath' => 'cohort/externallib.php', - 'description' => 'Returns cohort details.', - 'type' => 'read', - 'capabilities'=> 'moodle/cohort:view', + 'core_calendar_delete_calendar_events' => array( + 'classname' => 'core_calendar_external', + 'methodname' => 'delete_calendar_events', + 'description' => 'Delete calendar events', + 'classpath' => 'calendar/externallib.php', + 'type' => 'write', + 'capabilities' => 'moodle/calendar:manageentries, moodle/calendar:manageownentries, moodle/calendar:managegroupentries' ), - - 'core_cohort_update_cohorts' => array( - 'classname' => 'core_cohort_external', - 'methodname' => 'update_cohorts', - 'classpath' => 'cohort/externallib.php', - 'description' => 'Updates existing cohorts.', - 'type' => 'write', - 'capabilities'=> 'moodle/cohort:manage', + 'core_calendar_get_calendar_events' => array( + 'classname' => 'core_calendar_external', + 'methodname' => 'get_calendar_events', + 'description' => 'Get calendar events', + 'classpath' => 'calendar/externallib.php', + 'type' => 'read', + 'capabilities' => 'moodle/calendar:manageentries, moodle/calendar:manageownentries, moodle/calendar:managegroupentries' ), - 'core_cohort_add_cohort_members' => array( - 'classname' => 'core_cohort_external', - 'methodname' => 'add_cohort_members', - 'classpath' => 'cohort/externallib.php', + 'classname' => 'core_cohort_external', + 'methodname' => 'add_cohort_members', + 'classpath' => 'cohort/externallib.php', 'description' => 'Adds cohort members.', - 'type' => 'write', - 'capabilities'=> 'moodle/cohort:assign', + 'type' => 'write', + 'capabilities' => 'moodle/cohort:assign' + ), + 'core_cohort_create_cohorts' => array( + 'classname' => 'core_cohort_external', + 'methodname' => 'create_cohorts', + 'classpath' => 'cohort/externallib.php', + 'description' => 'Creates new cohorts.', + 'type' => 'write', + 'capabilities' => 'moodle/cohort:manage' ), - 'core_cohort_delete_cohort_members' => array( - 'classname' => 'core_cohort_external', - 'methodname' => 'delete_cohort_members', - 'classpath' => 'cohort/externallib.php', + 'classname' => 'core_cohort_external', + 'methodname' => 'delete_cohort_members', + 'classpath' => 'cohort/externallib.php', 'description' => 'Deletes cohort members.', - 'type' => 'delete', - 'capabilities'=> 'moodle/cohort:assign', + 'type' => 'delete', + 'capabilities' => 'moodle/cohort:assign' + ), + 'core_cohort_delete_cohorts' => array( + 'classname' => 'core_cohort_external', + 'methodname' => 'delete_cohorts', + 'classpath' => 'cohort/externallib.php', + 'description' => 'Deletes all specified cohorts.', + 'type' => 'delete', + 'capabilities' => 'moodle/cohort:manage' ), - 'core_cohort_get_cohort_members' => array( - 'classname' => 'core_cohort_external', - 'methodname' => 'get_cohort_members', - 'classpath' => 'cohort/externallib.php', + 'classname' => 'core_cohort_external', + 'methodname' => 'get_cohort_members', + 'classpath' => 'cohort/externallib.php', 'description' => 'Returns cohort members.', - 'type' => 'read', - 'capabilities'=> 'moodle/cohort:view', + 'type' => 'read', + 'capabilities' => 'moodle/cohort:view' + ), + 'core_cohort_get_cohorts' => array( + 'classname' => 'core_cohort_external', + 'methodname' => 'get_cohorts', + 'classpath' => 'cohort/externallib.php', + 'description' => 'Returns cohort details.', + 'type' => 'read', + 'capabilities' => 'moodle/cohort:view' + ), + 'core_cohort_update_cohorts' => array( + 'classname' => 'core_cohort_external', + 'methodname' => 'update_cohorts', + 'classpath' => 'cohort/externallib.php', + 'description' => 'Updates existing cohorts.', + 'type' => 'write', + 'capabilities' => 'moodle/cohort:manage' ), - - // Comments related functions. - 'core_comment_get_comments' => array( - 'classname' => 'core_comment_external', - 'methodname' => 'get_comments', - 'description' => 'Returns comments.', - 'type' => 'read', - 'capabilities' => 'moodle/comment:view', + 'classname' => 'core_comment_external', + 'methodname' => 'get_comments', + 'description' => 'Returns comments.', + 'type' => 'read', + 'capabilities' => 'moodle/comment:view' + ), + 'core_completion_get_activities_completion_status' => array( + 'classname' => 'core_completion_external', + 'methodname' => 'get_activities_completion_status', + 'description' => 'Return the activities completion status for a user in a course.', + 'type' => 'read', + ), + 'core_completion_get_course_completion_status' => array( + 'classname' => 'core_completion_external', + 'methodname' => 'get_course_completion_status', + 'description' => 'Returns course completion status.', + 'type' => 'read', + 'capabilities' => 'report/completion:view' + ), + 'core_completion_mark_course_self_completed' => array( + 'classname' => 'core_completion_external', + 'methodname' => 'mark_course_self_completed', + 'description' => 'Update the course completion status for the current user (if course self-completion is enabled).', + 'type' => 'write', + ), + 'core_completion_update_activity_completion_status_manually' => array( + 'classname' => 'core_completion_external', + 'methodname' => 'update_activity_completion_status_manually', + 'description' => 'Update completion status for the current user in an activity, only for activities with manual tracking.', + 'type' => 'write', + ), + 'core_course_create_categories' => array( + 'classname' => 'core_course_external', + 'methodname' => 'create_categories', + 'classpath' => 'course/externallib.php', + 'description' => 'Create course categories', + 'type' => 'write', + 'capabilities' => 'moodle/category:manage' ), - - // Grade related functions. - - 'core_grades_get_grades' => array( - 'classname' => 'core_grades_external', - 'methodname' => 'get_grades', - 'description' => 'Returns student course total grade and grades for activities. - This function does not return category or manual items. - This function is suitable for managers or teachers not students.', - 'type' => 'read', - 'capabilities' => 'moodle/grade:view, moodle/grade:viewall, moodle/grade:viewhidden', - ), - - 'core_grades_update_grades' => array( - 'classname' => 'core_grades_external', - 'methodname' => 'update_grades', - 'description' => 'Update a grade item and associated student grades.', - 'type' => 'write', - 'capabilities' => '', - ), - - // === group related functions === - - 'moodle_group_create_groups' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'create_groups', - 'classpath' => 'group/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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.', - 'type' => 'write', - 'capabilities'=> 'moodle/course:managegroups', - ), - - 'moodle_group_get_groups' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'get_groups', - 'classpath' => 'group/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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.', - 'type' => 'read', - 'capabilities'=> 'moodle/course:managegroups', - ), - - 'moodle_group_get_course_groups' => array( - 'classname' => 'moodle_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 been 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.', - 'type' => 'read', - 'capabilities'=> 'moodle/course:managegroups', - ), - - 'moodle_group_delete_groups' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'delete_groups', - 'classpath' => 'group/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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.', - 'type' => 'delete', - 'capabilities'=> 'moodle/course:managegroups', - ), - - 'moodle_group_get_groupmembers' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'get_groupmembers', - 'classpath' => 'group/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'capabilities'=> 'moodle/course:managegroups', - ), - - 'moodle_group_add_groupmembers' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'add_groupmembers', - 'classpath' => 'group/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'capabilities'=> 'moodle/course:managegroups', - ), - - 'moodle_group_delete_groupmembers' => array( - 'classname' => 'moodle_group_external', - 'methodname' => 'delete_groupmembers', - 'classpath' => 'group/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - ), - - 'core_group_create_groupings' => array( - 'classname' => 'core_group_external', - 'methodname' => 'create_groupings', - 'classpath' => 'group/externallib.php', - 'description' => 'Creates new groupings', - 'type' => 'write', - ), - - 'core_group_update_groupings' => array( - 'classname' => 'core_group_external', - 'methodname' => 'update_groupings', - 'classpath' => 'group/externallib.php', - 'description' => 'Updates existing groupings', - 'type' => 'write', - ), - - 'core_group_get_groupings' => array( - 'classname' => 'core_group_external', - 'methodname' => 'get_groupings', - 'classpath' => 'group/externallib.php', - 'description' => 'Returns groupings details.', - 'type' => 'read', - ), - - 'core_group_get_course_groupings' => array( - 'classname' => 'core_group_external', - 'methodname' => 'get_course_groupings', - 'classpath' => 'group/externallib.php', - 'description' => 'Returns all groupings in specified course.', - 'type' => 'read', - ), - - 'core_group_delete_groupings' => array( - 'classname' => 'core_group_external', - 'methodname' => 'delete_groupings', - 'classpath' => 'group/externallib.php', - 'description' => 'Deletes all specified groupings.', - 'type' => 'write', - ), - - 'core_group_assign_grouping' => array( - 'classname' => 'core_group_external', - 'methodname' => 'assign_grouping', - 'classpath' => 'group/externallib.php', - 'description' => 'Assing groups from groupings', - 'type' => 'write', - ), - - 'core_group_unassign_grouping' => array( - 'classname' => 'core_group_external', - 'methodname' => 'unassign_grouping', - 'classpath' => 'group/externallib.php', - 'description' => 'Unassing groups from groupings', - 'type' => 'write', - ), - - 'core_group_get_course_user_groups' => array( - 'classname' => 'core_group_external', - 'methodname' => 'get_course_user_groups', - 'classpath' => 'group/externallib.php', - 'description' => 'Returns all groups in specified course for the specified user.', - 'type' => 'read', - 'capabilities' => 'moodle/course:managegroups', - ), - - 'core_group_get_activity_allowed_groups' => array( - 'classname' => 'core_group_external', - 'methodname' => 'get_activity_allowed_groups', - 'classpath' => 'group/externallib.php', - 'description' => 'Gets a list of groups that the user is allowed to access within the specified activity.', - 'type' => 'read', - 'capabilities' => '', - ), - - 'core_group_get_activity_groupmode' => array( - 'classname' => 'core_group_external', - 'methodname' => 'get_activity_groupmode', - 'classpath' => 'group/externallib.php', - 'description' => 'Returns effective groupmode used in a given activity.', - 'type' => 'read', - 'capabilities' => '', - ), - - 'core_notes_get_course_notes' => array( - 'classname' => 'core_notes_external', - 'methodname' => 'get_course_notes', - 'classpath' => 'notes/externallib.php', - 'description' => 'Returns all notes in specified course (or site) for the specified user.', - 'type' => 'read', - 'capabilities' => 'moodle/notes:view', - ), - - // === file related functions === - - 'moodle_file_get_files' => array( - 'classname' => 'moodle_file_external', - 'methodname' => 'get_files', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'methodname' => 'upload', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'classpath' => 'files/externallib.php', - ), - - // === user related functions === - - 'moodle_user_create_users' => array( - 'classname' => 'moodle_user_external', - 'methodname' => 'create_users', - 'classpath' => 'user/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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.', - 'type' => 'write', - 'capabilities'=> 'moodle/user:create', - ), - - 'core_user_get_users' => array( - 'classname' => 'core_user_external', - 'methodname' => 'get_users', - 'classpath' => 'user/externallib.php', - 'description' => 'search for users matching the parameters', - 'type' => 'read', - 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update', - ), - - 'moodle_user_get_users_by_id' => array( - 'classname' => 'moodle_user_external', - 'methodname' => 'get_users_by_id', - 'classpath' => 'user/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. Use core_user_get_users_by_field service instead', - 'type' => 'read', - 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update', - ), - - 'core_user_get_users_by_field' => array( - 'classname' => 'core_user_external', - 'methodname' => 'get_users_by_field', - 'classpath' => 'user/externallib.php', - 'description' => 'Retrieve users information for a specified unique field - If you want to do a user search, use core_user_get_users()', - 'type' => 'read', - 'ajax' => true, - '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' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been replaced by core_user_get_users_by_field()', - 'type' => 'read', - 'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update', - ), - - 'moodle_user_get_users_by_courseid' => array( - 'classname' => 'moodle_user_external', - 'methodname' => 'get_users_by_courseid', - 'classpath' => 'user/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'classpath' => 'user/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'methodname' => 'delete_users', - 'classpath' => 'user/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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.', - 'type' => 'write', - 'capabilities'=> 'moodle/user:delete', - ), - - 'moodle_user_update_users' => array( - 'classname' => 'moodle_user_external', - 'methodname' => 'update_users', - 'classpath' => 'user/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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.', - 'type' => 'write', - 'capabilities'=> 'moodle/user:update', - ), - - 'core_user_add_user_device' => array( - 'classname' => 'core_user_external', - 'methodname' => 'add_user_device', - 'classpath' => 'user/externallib.php', - 'description' => 'Store mobile user devices information for PUSH Notifications.', - 'type' => 'write', - 'capabilities'=> '', - ), - - 'core_user_remove_user_device' => array( - 'classname' => 'core_user_external', - 'methodname' => 'remove_user_device', - 'classpath' => 'user/externallib.php', - 'description' => 'Remove a user device from the Moodle database.', - 'type' => 'write', - 'capabilities' => '', - ), - - 'core_user_view_user_list' => array( - 'classname' => 'core_user_external', - 'methodname' => 'view_user_list', - 'classpath' => 'user/externallib.php', - 'description' => 'Simulates the web-interface view of user/index.php (triggering events).', - 'type' => 'write', - 'capabilities' => 'moodle/course:viewparticipants', - ), - - 'core_user_view_user_profile' => array( - 'classname' => 'core_user_external', - 'methodname' => 'view_user_profile', - 'classpath' => 'user/externallib.php', - 'description' => 'Simulates the web-interface view of user/view.php and user/profile.php (triggering events).', - 'type' => 'write', - 'capabilities' => 'moodle/user:viewdetails', - ), - - 'core_user_add_user_private_files' => array( - 'classname' => 'core_user_external', - 'methodname' => 'add_user_private_files', - 'classpath' => 'user/externallib.php', - 'description' => 'Copy files from a draft area to users private files area.', - 'type' => 'write', - 'capabilities' => 'moodle/user:manageownfiles', - ), - - // === enrol related functions === - - 'core_enrol_get_enrolled_users_with_capability' => array( - 'classname' => 'core_enrol_external', - 'methodname' => 'get_enrolled_users_with_capability', - 'classpath' => 'enrol/externallib.php', - 'description' => 'For each course and capability specified, return a list of the users that are enrolled in the course - and have that capability', - 'type' => 'read', - ), - - 'moodle_enrol_get_enrolled_users' => array( - 'classname' => 'moodle_enrol_external', - 'methodname' => 'get_enrolled_users', - 'classpath' => 'enrol/externallib.php', - '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', - 'methodname' => 'get_users_courses', - 'classpath' => 'enrol/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - ), - - 'core_enrol_get_course_enrolment_methods' => array( - 'classname' => 'core_enrol_external', - 'methodname' => 'get_course_enrolment_methods', - 'classpath' => 'enrol/externallib.php', - 'description' => 'Get the list of course enrolment methods', - 'type' => 'read', - ), - - // === Role related functions === - - 'moodle_role_assign' => array( - 'classname' => 'moodle_enrol_external', - 'methodname' => 'role_assign', - 'classpath' => 'enrol/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'capabilities'=> 'moodle/role:assign', - ), - - 'moodle_role_unassign' => array( - 'classname' => 'moodle_enrol_external', - 'methodname' => 'role_unassign', - 'classpath' => 'enrol/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'capabilities'=> 'moodle/role:assign', - ), - - // === course related functions === - - 'core_course_get_contents' => array( - 'classname' => 'core_course_external', - 'methodname' => 'get_course_contents', - 'classpath' => 'course/externallib.php', - 'description' => 'Get course contents', - 'type' => 'read', - 'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses', - ), - - 'moodle_course_get_courses' => array( - 'classname' => 'moodle_course_external', - 'methodname' => 'get_courses', - 'classpath' => 'course/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'type' => 'read', - 'capabilities'=> 'moodle/course:view,moodle/course:update,moodle/course:viewhiddencourses', - 'ajax' => true, - ), - - 'core_course_search_courses' => array( - 'classname' => 'core_course_external', - 'methodname' => 'search_courses', - 'classpath' => 'course/externallib.php', - 'description' => 'Search courses by (name, module, block, tag)', - 'type' => 'read', - 'capabilities' => '', - 'ajax' => true, - ), - - 'moodle_course_create_courses' => array( - 'classname' => 'moodle_course_external', - 'methodname' => 'create_courses', - 'classpath' => 'course/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', + 'classname' => 'core_course_external', + 'methodname' => 'create_courses', + 'classpath' => 'course/externallib.php', 'description' => 'Create new courses', - 'type' => 'write', - 'capabilities'=> 'moodle/course:create,moodle/course:visibility', + 'type' => 'write', + 'capabilities' => 'moodle/course:create, moodle/course:visibility' + ), + 'core_course_delete_categories' => array( + 'classname' => 'core_course_external', + 'methodname' => 'delete_categories', + 'classpath' => 'course/externallib.php', + 'description' => 'Delete course categories', + 'type' => 'write', + 'capabilities' => 'moodle/category:manage' ), - 'core_course_delete_courses' => array( - 'classname' => 'core_course_external', - 'methodname' => 'delete_courses', - 'classpath' => 'course/externallib.php', + 'classname' => 'core_course_external', + 'methodname' => 'delete_courses', + 'classpath' => 'course/externallib.php', 'description' => 'Deletes all specified courses', - 'type' => 'write', - 'capabilities'=> 'moodle/course:delete', + 'type' => 'write', + 'capabilities' => 'moodle/course:delete' ), - 'core_course_delete_modules' => array( 'classname' => 'core_course_external', 'methodname' => 'delete_modules', @@ -718,475 +193,479 @@ $functions = array( 'type' => 'write', 'capabilities' => 'moodle/course:manageactivities' ), - 'core_course_duplicate_course' => array( - 'classname' => 'core_course_external', - 'methodname' => 'duplicate_course', - 'classpath' => 'course/externallib.php', - 'description' => 'Duplicate an existing course (creating a new one) without user data', - 'type' => 'write', - 'capabilities'=> 'moodle/backup:backupcourse,moodle/restore:restorecourse,moodle/course:create', + 'classname' => 'core_course_external', + 'methodname' => 'duplicate_course', + 'classpath' => 'course/externallib.php', + 'description' => 'Duplicate an existing course (creating a new one), without user data', + 'type' => 'write', + 'capabilities' => 'moodle/backup:backupcourse, moodle/restore:restorecourse, moodle/course:create' ), - - 'core_course_update_courses' => array( - 'classname' => 'core_course_external', - 'methodname' => 'update_courses', - 'classpath' => 'course/externallib.php', - 'description' => 'Update courses', - 'type' => 'write', - 'capabilities'=> 'moodle/course:update,moodle/course:changecategory,moodle/course:changefullname,moodle/course:changeshortname,moodle/course:changeidnumber,moodle/course:changesummary,moodle/course:visibility', - ), - - 'core_course_view_course' => array( - 'classname' => 'core_course_external', - 'methodname' => 'view_course', - 'classpath' => 'course/externallib.php', - 'description' => 'Log that the course was viewed', - 'type' => 'write' - ), - - 'core_course_get_course_module' => array( - 'classname' => 'core_course_external', - 'methodname' => 'get_course_module', - 'classpath' => 'course/externallib.php', - 'description' => 'Return information about a course module', - 'type' => 'read' - ), - - 'core_course_get_course_module_by_instance' => array( - 'classname' => 'core_course_external', - 'methodname' => 'get_course_module_by_instance', - 'classpath' => 'course/externallib.php', - 'description' => 'Return information about a given module name and instance id', - 'type' => 'read' - ), - - // === course category related functions === - 'core_course_get_categories' => array( - 'classname' => 'core_course_external', - 'methodname' => 'get_categories', - 'classpath' => 'course/externallib.php', + 'classname' => 'core_course_external', + 'methodname' => 'get_categories', + 'classpath' => 'course/externallib.php', 'description' => 'Return category details', - 'type' => 'read', - 'capabilities'=> 'moodle/category:viewhiddencategories', + 'type' => 'read', + 'capabilities' => 'moodle/category:viewhiddencategories' ), - - 'core_course_create_categories' => array( - 'classname' => 'core_course_external', - 'methodname' => 'create_categories', - 'classpath' => 'course/externallib.php', - 'description' => 'Create course categories', - 'type' => 'write', - 'capabilities'=> 'moodle/category:manage', + 'core_course_get_contents' => array( + 'classname' => 'core_course_external', + 'methodname' => 'get_course_contents', + 'classpath' => 'course/externallib.php', + 'description' => 'Get course contents', + 'type' => 'read', + 'capabilities' => 'moodle/course:update, moodle/course:viewhiddencourses' ), - - 'core_course_update_categories' => array( - 'classname' => 'core_course_external', - 'methodname' => 'update_categories', - 'classpath' => 'course/externallib.php', - 'description' => 'Update categories', - 'type' => 'write', - 'capabilities'=> 'moodle/category:manage', + 'core_course_get_course_module' => array( + 'classname' => 'core_course_external', + 'methodname' => 'get_course_module', + 'classpath' => 'course/externallib.php', + 'description' => 'Return information about a course module', + 'type' => 'read', ), - - 'core_course_delete_categories' => array( - 'classname' => 'core_course_external', - 'methodname' => 'delete_categories', - 'classpath' => 'course/externallib.php', - 'description' => 'Delete course categories', - 'type' => 'write', - 'capabilities'=> 'moodle/category:manage', + 'core_course_get_course_module_by_instance' => array( + 'classname' => 'core_course_external', + 'methodname' => 'get_course_module_by_instance', + 'classpath' => 'course/externallib.php', + 'description' => 'Return information about a given module name and instance id', + 'type' => 'read', + ), + 'core_course_get_courses' => array( + 'classname' => 'core_course_external', + 'methodname' => 'get_courses', + 'classpath' => 'course/externallib.php', + 'description' => 'Return course details', + 'type' => 'read', + 'capabilities' => 'moodle/course:view, moodle/course:update, moodle/course:viewhiddencourses', + 'ajax' => '1', ), - 'core_course_import_course' => array( - 'classname' => 'core_course_external', - 'methodname' => 'import_course', - 'classpath' => 'course/externallib.php', + 'classname' => 'core_course_external', + 'methodname' => 'import_course', + 'classpath' => 'course/externallib.php', 'description' => 'Import course data from a course into another course. Does not include any user data.', - 'type' => 'write', - 'capabilities'=> 'moodle/backup:backuptargetimport, moodle/restore:restoretargetimport', + 'type' => 'write', + 'capabilities' => 'moodle/backup:backuptargetimport, moodle/restore:restoretargetimport' ), - - // === message related functions === - - 'moodle_message_send_instantmessages' => array( - 'classname' => 'moodle_message_external', - 'methodname' => 'send_instantmessages', - 'classpath' => 'message/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_message_send_instant_messages()', - 'type' => 'write', - 'capabilities'=> 'moodle/site:sendmessage', + 'core_course_search_courses' => array( + 'classname' => 'core_course_external', + 'methodname' => 'search_courses', + 'classpath' => 'course/externallib.php', + 'description' => 'Search courses by (name, module, block, tag)', + 'type' => 'read', + 'ajax' => '1', ), - - 'core_message_send_instant_messages' => array( - 'classname' => 'core_message_external', - 'methodname' => 'send_instant_messages', - 'classpath' => 'message/externallib.php', - 'description' => 'Send instant messages', - 'type' => 'write', - 'capabilities'=> 'moodle/site:sendmessage', + 'core_course_update_categories' => array( + 'classname' => 'core_course_external', + 'methodname' => 'update_categories', + 'classpath' => 'course/externallib.php', + 'description' => 'Update categories', + 'type' => 'write', + 'capabilities' => 'moodle/category:manage', ), - - 'core_message_create_contacts' => array( - 'classname' => 'core_message_external', - 'methodname' => 'create_contacts', - 'classpath' => 'message/externallib.php', - 'description' => 'Add contacts to the contact list', - 'type' => 'write', - 'capabilities'=> '', + 'core_course_update_courses' => array( + 'classname' => 'core_course_external', + 'methodname' => 'update_courses', + 'classpath' => 'course/externallib.php', + 'description' => 'Update courses', + 'type' => 'write', + 'capabilities' => 'moodle/course:update, moodle/course:changecategory, moodle/course:changefullname, ' + . 'moodle/course:changeshortname, moodle/course:changeidnumber, moodle/course:changesummary, moodle/course:visibility' ), - - 'core_message_delete_contacts' => array( - 'classname' => 'core_message_external', - 'methodname' => 'delete_contacts', - 'classpath' => 'message/externallib.php', - 'description' => 'Remove contacts from the contact list', - 'type' => 'write', - 'capabilities'=> '', + 'core_course_view_course' => array( + 'classname' => 'core_course_external', + 'methodname' => 'view_course', + 'classpath' => 'course/externallib.php', + 'description' => 'Log that the course was viewed', + 'type' => 'write', ), - - 'core_message_block_contacts' => array( - 'classname' => 'core_message_external', - 'methodname' => 'block_contacts', - 'classpath' => 'message/externallib.php', - 'description' => 'Block contacts', - 'type' => 'write', - 'capabilities'=> '', + 'core_enrol_get_course_enrolment_methods' => array( + 'classname' => 'core_enrol_external', + 'methodname' => 'get_course_enrolment_methods', + 'classpath' => 'enrol/externallib.php', + 'description' => 'Get the list of course enrolment methods', + 'type' => 'read', ), - - 'core_message_unblock_contacts' => array( - 'classname' => 'core_message_external', - 'methodname' => 'unblock_contacts', - 'classpath' => 'message/externallib.php', - 'description' => 'Unblock contacts', - 'type' => 'write', - 'capabilities'=> '', + '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' ), - - 'core_message_get_contacts' => array( - 'classname' => 'core_message_external', - 'methodname' => 'get_contacts', - 'classpath' => 'message/externallib.php', - 'description' => 'Retrieve the contact list', - 'type' => 'read', - 'capabilities'=> '', + 'core_enrol_get_enrolled_users_with_capability' => array( + 'classname' => 'core_enrol_external', + 'methodname' => 'get_enrolled_users_with_capability', + 'classpath' => 'enrol/externallib.php', + 'description' => 'For each course and capability specified, return a list of the users that are enrolled in the course + and have that capability', + 'type' => 'read', ), - - 'core_message_search_contacts' => array( - 'classname' => 'core_message_external', - 'methodname' => 'search_contacts', - 'classpath' => 'message/externallib.php', - 'description' => 'Search for contacts', - 'type' => 'read', - 'capabilities'=> '', + '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' ), - - 'core_message_get_messages' => array( - 'classname' => 'core_message_external', - 'methodname' => 'get_messages', - 'classpath' => 'message/externallib.php', - 'description' => 'Retrieve a list of messages sent and received by a user (conversations, notifications or both)', - 'type' => 'read', - 'capabilities' => '', - ), - - 'core_message_get_blocked_users' => array( - 'classname' => 'core_message_external', - 'methodname' => 'get_blocked_users', - 'classpath' => 'message/externallib.php', - 'description' => 'Retrieve a list of users blocked', - 'type' => 'read', - 'capabilities' => '', - ), - - 'core_message_mark_message_read' => array( - 'classname' => 'core_message_external', - 'methodname' => 'mark_message_read', - 'classpath' => 'message/externallib.php', - 'description' => 'Mark a single message as read, trigger message_viewed event.', - 'type' => 'write', - 'capabilities' => '', - ), - - 'core_message_delete_message' => array( - 'classname' => 'core_message_external', - 'methodname' => 'delete_message', - 'classpath' => 'message/externallib.php', - 'description' => 'Deletes a message.', - 'type' => 'write', - 'capabilities' => 'moodle/site:deleteownmessage', - ), - - // === notes related functions === - - 'moodle_notes_create_notes' => array( - 'classname' => 'moodle_notes_external', - 'methodname' => 'create_notes', - 'classpath' => 'notes/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - 'type' => 'write', - 'capabilities'=> 'moodle/notes:manage', - ), - - 'core_notes_delete_notes' => array( - 'classname' => 'core_notes_external', - 'methodname' => 'delete_notes', - 'classpath' => 'notes/externallib.php', - 'description' => 'Delete notes', - 'type' => 'write', - 'capabilities'=> 'moodle/notes:manage', - ), - - 'core_notes_get_notes' => array( - 'classname' => 'core_notes_external', - 'methodname' => 'get_notes', - 'classpath' => 'notes/externallib.php', - 'description' => 'Get notes', - 'type' => 'read', - 'capabilities'=> 'moodle/notes:view', - ), - - 'core_notes_update_notes' => array( - 'classname' => 'core_notes_external', - 'methodname' => 'update_notes', - 'classpath' => 'notes/externallib.php', - 'description' => 'Update notes', - 'type' => 'write', - 'capabilities'=> 'moodle/notes:manage', - ), - - 'core_notes_view_notes' => array( - 'classname' => 'core_notes_external', - 'methodname' => 'view_notes', - 'classpath' => 'notes/externallib.php', - 'description' => 'Simulates the web interface view of notes/index.php: trigger events.', - 'type' => 'write', - 'capabilities' => 'moodle/notes:view', - ), - - // === grading related functions === - - 'core_grading_get_definitions' => array( - 'classname' => 'core_grading_external', - 'methodname' => 'get_definitions', - 'description' => 'Get grading definitions', - 'type' => 'read' - ), - - 'core_grade_get_definitions' => array( - 'classname' => 'core_grade_external', - 'methodname' => 'get_definitions', - 'classpath' => 'grade/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been renamed as core_grading_get_definitions()', - 'type' => 'read' - ), - - 'core_grading_save_definitions' => array( - 'classname' => 'core_grading_external', - 'methodname' => 'save_definitions', - 'description' => 'Save grading definitions', - 'type' => 'write' - ), - - 'core_grading_get_gradingform_instances' => array( - 'classname' => 'core_grading_external', - 'methodname' => 'get_gradingform_instances', - 'description' => 'Get grading form instances', - 'type' => 'read' - ), - - // === webservice related functions === - - 'moodle_webservice_get_siteinfo' => array( - 'classname' => 'moodle_webservice_external', - 'methodname' => 'get_siteinfo', - 'classpath' => 'webservice/externallib.php', - 'description' => 'DEPRECATED: this deprecated function will be removed in a future version. This function has been 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', - ), - - 'core_get_string' => array( - 'classname' => 'core_external', - 'methodname' => 'get_string', - 'classpath' => 'lib/external/externallib.php', - 'description' => 'Return a translated string - similar to core get_string() call', - 'type' => 'read', - 'loginrequired' => false, - 'ajax' => true, - ), - - 'core_get_strings' => array( - 'classname' => 'core_external', - 'methodname' => 'get_strings', - 'classpath' => 'lib/external/externallib.php', - 'description' => 'Return some translated strings - like several core get_string() calls', - 'type' => 'read', - 'loginrequired' => false, - 'ajax' => true, - ), - - 'core_get_component_strings' => array( - 'classname' => 'core_external', - 'methodname' => 'get_component_strings', - 'classpath' => 'lib/external/externallib.php', - 'description' => 'Return all raw strings (with {$a->xxx}) for a specific component - - similar to core get_component_strings() call', - 'type' => 'read', - 'loginrequired' => false, - 'ajax' => true, - ), - - 'core_get_fragment' => array( - 'classname' => 'core_external', - 'methodname' => 'get_fragment', - 'classpath' => 'lib/external/externallib.php', - 'description' => 'Return a fragment for inclusion, such as a JavaScript page.', - 'type' => 'read', - 'ajax' => true, - ), - - 'core_update_inplace_editable' => array( - 'classname' => 'core_external', - 'methodname' => 'update_inplace_editable', - 'classpath' => 'lib/external/externallib.php', - 'description' => 'Generic service to update title', - 'type' => 'write', - 'loginrequired' => true, - 'ajax' => true, - ), - 'core_fetch_notifications' => array( - 'classname' => 'core_external', - 'methodname' => 'fetch_notifications', - 'classpath' => 'lib/external/externallib.php', + 'classname' => 'core_external', + 'methodname' => 'fetch_notifications', + 'classpath' => 'lib/external/externallib.php', 'description' => 'Return a list of notifications for the current session', - 'type' => 'read', - 'loginrequired' => false, - 'ajax' => true, + 'type' => 'read', + 'loginrequired' => '', + 'ajax' => '1', ), - - // === Calendar related functions === - - 'core_calendar_delete_calendar_events' => array( - 'classname' => 'core_calendar_external', - 'methodname' => 'delete_calendar_events', - 'description' => 'Delete calendar events', - 'classpath' => 'calendar/externallib.php', + 'core_files_get_files' => array( + 'classname' => 'core_files_external', + 'methodname' => 'get_files', + 'description' => 'browse moodle files', + 'type' => 'read', + 'classpath' => 'files/externallib.php', + ), + 'core_files_upload' => array( + 'classname' => 'core_files_external', + 'methodname' => 'upload', + 'description' => 'upload a file to moodle', 'type' => 'write', - 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries' + 'classpath' => 'files/externallib.php', ), - - - 'core_calendar_get_calendar_events' => array( - 'classname' => 'core_calendar_external', - 'methodname' => 'get_calendar_events', - 'description' => 'Get calendar events', - 'classpath' => 'calendar/externallib.php', - 'type' => 'read', - 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries' + 'core_get_component_strings' => array( + 'classname' => 'core_external', + 'methodname' => 'get_component_strings', + 'classpath' => 'lib/external/externallib.php', + 'description' => 'Return all raw strings (with {$a->xxx}), for a specific component + - similar to core get_component_strings(), call', + 'type' => 'read', + 'loginrequired' => '', + 'ajax' => '1', ), - - 'core_calendar_create_calendar_events' => array( - 'classname' => 'core_calendar_external', - 'methodname' => 'create_calendar_events', - 'description' => 'Create calendar events', - 'classpath' => 'calendar/externallib.php', - 'type' => 'write', - 'capabilities'=> 'moodle/calendar:manageentries', 'moodle/calendar:manageownentries', 'moodle/calendar:managegroupentries' + 'core_get_fragment' => array( + 'classname' => 'core_external', + 'methodname' => 'get_fragment', + 'classpath' => 'lib/external/externallib.php', + 'description' => 'Return a fragment for inclusion, such as a JavaScript page.', + 'type' => 'read', + 'ajax' => '1', + ), + 'core_get_string' => array( + 'classname' => 'core_external', + 'methodname' => 'get_string', + 'classpath' => 'lib/external/externallib.php', + 'description' => 'Return a translated string - similar to core get_string(), call', + 'type' => 'read', + 'loginrequired' => '', + 'ajax' => '1', + ), + 'core_get_strings' => array( + 'classname' => 'core_external', + 'methodname' => 'get_strings', + 'classpath' => 'lib/external/externallib.php', + 'description' => 'Return some translated strings - like several core get_string(), calls', + 'type' => 'read', + 'loginrequired' => '', + 'ajax' => '1', + ), + 'core_grades_get_grades' => array( + 'classname' => 'core_grades_external', + 'methodname' => 'get_grades', + 'description' => 'Returns student course total grade and grades for activities. + This function does not return category or manual items. + This function is suitable for managers or teachers not students.', + 'type' => 'read', + 'capabilities' => 'moodle/grade:view, moodle/grade:viewall, moodle/grade:viewhidden' + ), + 'core_grades_update_grades' => array( + 'classname' => 'core_grades_external', + 'methodname' => 'update_grades', + 'description' => 'Update a grade item and associated student grades.', + 'type' => 'write', + ), + 'core_grading_get_definitions' => array( + 'classname' => 'core_grading_external', + 'methodname' => 'get_definitions', + 'description' => 'Get grading definitions', + 'type' => 'read', + ), + 'core_grading_get_gradingform_instances' => array( + 'classname' => 'core_grading_external', + 'methodname' => 'get_gradingform_instances', + 'description' => 'Get grading form instances', + 'type' => 'read', + ), + 'core_grading_save_definitions' => array( + 'classname' => 'core_grading_external', + 'methodname' => 'save_definitions', + 'description' => 'Save grading definitions', + 'type' => 'write', + ), + 'core_group_add_group_members' => array( + 'classname' => 'core_group_external', + 'methodname' => 'add_group_members', + 'classpath' => 'group/externallib.php', + 'description' => 'Adds group members.', + 'type' => 'write', + 'capabilities' => 'moodle/course:managegroups', + ), + 'core_group_assign_grouping' => array( + 'classname' => 'core_group_external', + 'methodname' => 'assign_grouping', + 'classpath' => 'group/externallib.php', + 'description' => 'Assing groups from groupings', + 'type' => 'write', + ), + 'core_group_create_groupings' => array( + 'classname' => 'core_group_external', + 'methodname' => 'create_groupings', + 'classpath' => 'group/externallib.php', + 'description' => 'Creates new groupings', + 'type' => 'write', + ), + 'core_group_create_groups' => array( + 'classname' => 'core_group_external', + 'methodname' => 'create_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'Creates new groups.', + 'type' => 'write', + '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' + ), + 'core_group_delete_groupings' => array( + 'classname' => 'core_group_external', + 'methodname' => 'delete_groupings', + 'classpath' => 'group/externallib.php', + 'description' => 'Deletes all specified groupings.', + 'type' => 'write', + ), + 'core_group_delete_groups' => array( + 'classname' => 'core_group_external', + 'methodname' => 'delete_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'Deletes all specified groups.', + 'type' => 'delete', + 'capabilities' => 'moodle/course:managegroups' + ), + 'core_group_get_activity_allowed_groups' => array( + 'classname' => 'core_group_external', + 'methodname' => 'get_activity_allowed_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'Gets a list of groups that the user is allowed to access within the specified activity.', + 'type' => 'read', + ), + 'core_group_get_activity_groupmode' => array( + 'classname' => 'core_group_external', + 'methodname' => 'get_activity_groupmode', + 'classpath' => 'group/externallib.php', + 'description' => 'Returns effective groupmode used in a given activity.', + 'type' => 'read', + ), + 'core_group_get_course_groupings' => array( + 'classname' => 'core_group_external', + 'methodname' => 'get_course_groupings', + 'classpath' => 'group/externallib.php', + 'description' => 'Returns all groupings in specified course.', + 'type' => 'read', + ), + '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.', + 'type' => 'read', + 'capabilities' => 'moodle/course:managegroups' + ), + 'core_group_get_course_user_groups' => array( + 'classname' => 'core_group_external', + 'methodname' => 'get_course_user_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'Returns all groups in specified course for the specified user.', + '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', + 'capabilities' => 'moodle/course:managegroups' + ), + 'core_group_get_groupings' => array( + 'classname' => 'core_group_external', + 'methodname' => 'get_groupings', + 'classpath' => 'group/externallib.php', + 'description' => 'Returns groupings details.', + 'type' => 'read', + ), + 'core_group_get_groups' => array( + 'classname' => 'core_group_external', + 'methodname' => 'get_groups', + 'classpath' => 'group/externallib.php', + 'description' => 'Returns group details.', + 'type' => 'read', + 'capabilities' => 'moodle/course:managegroups' + ), + 'core_group_unassign_grouping' => array( + 'classname' => 'core_group_external', + 'methodname' => 'unassign_grouping', + 'classpath' => 'group/externallib.php', + 'description' => 'Unassing groups from groupings', + 'type' => 'write', + ), + 'core_group_update_groupings' => array( + 'classname' => 'core_group_external', + 'methodname' => 'update_groupings', + 'classpath' => 'group/externallib.php', + 'description' => 'Updates existing groupings', + 'type' => 'write', + ), + 'core_message_block_contacts' => array( + 'classname' => 'core_message_external', + 'methodname' => 'block_contacts', + 'classpath' => 'message/externallib.php', + 'description' => 'Block contacts', + 'type' => 'write', + ), + 'core_message_create_contacts' => array( + 'classname' => 'core_message_external', + 'methodname' => 'create_contacts', + 'classpath' => 'message/externallib.php', + 'description' => 'Add contacts to the contact list', + 'type' => 'write', + ), + 'core_message_delete_contacts' => array( + 'classname' => 'core_message_external', + 'methodname' => 'delete_contacts', + 'classpath' => 'message/externallib.php', + 'description' => 'Remove contacts from the contact list', + 'type' => 'write', + ), + 'core_message_delete_message' => array( + 'classname' => 'core_message_external', + 'methodname' => 'delete_message', + 'classpath' => 'message/externallib.php', + 'description' => 'Deletes a message.', + 'type' => 'write', + 'capabilities' => 'moodle/site:deleteownmessage' + ), + 'core_message_get_blocked_users' => array( + 'classname' => 'core_message_external', + 'methodname' => 'get_blocked_users', + 'classpath' => 'message/externallib.php', + 'description' => 'Retrieve a list of users blocked', + 'type' => 'read', + ), + 'core_message_get_contacts' => array( + 'classname' => 'core_message_external', + 'methodname' => 'get_contacts', + 'classpath' => 'message/externallib.php', + 'description' => 'Retrieve the contact list', + 'type' => 'read', + ), + 'core_message_get_messages' => array( + 'classname' => 'core_message_external', + 'methodname' => 'get_messages', + 'classpath' => 'message/externallib.php', + 'description' => 'Retrieve a list of messages sent and received by a user (conversations, notifications or both)', + 'type' => 'read', + ), + 'core_message_mark_message_read' => array( + 'classname' => 'core_message_external', + 'methodname' => 'mark_message_read', + 'classpath' => 'message/externallib.php', + 'description' => 'Mark a single message as read, trigger message_viewed event.', + 'type' => 'write', + ), + 'core_message_search_contacts' => array( + 'classname' => 'core_message_external', + 'methodname' => 'search_contacts', + 'classpath' => 'message/externallib.php', + 'description' => 'Search for contacts', + 'type' => 'read', + ), + 'core_message_send_instant_messages' => array( + 'classname' => 'core_message_external', + 'methodname' => 'send_instant_messages', + 'classpath' => 'message/externallib.php', + 'description' => 'Send instant messages', + 'type' => 'write', + 'capabilities' => 'moodle/site:sendmessage' + ), + 'core_message_unblock_contacts' => array( + 'classname' => 'core_message_external', + 'methodname' => 'unblock_contacts', + 'classpath' => 'message/externallib.php', + 'description' => 'Unblock contacts', + 'type' => 'write', + ), + 'core_notes_create_notes' => array( + 'classname' => 'core_notes_external', + 'methodname' => 'create_notes', + 'classpath' => 'notes/externallib.php', + 'description' => 'Create notes', + 'type' => 'write', + 'capabilities' => 'moodle/notes:manage' + ), + 'core_notes_delete_notes' => array( + 'classname' => 'core_notes_external', + 'methodname' => 'delete_notes', + 'classpath' => 'notes/externallib.php', + 'description' => 'Delete notes', + 'type' => 'write', + 'capabilities' => 'moodle/notes:manage' + ), + 'core_notes_get_course_notes' => array( + 'classname' => 'core_notes_external', + 'methodname' => 'get_course_notes', + 'classpath' => 'notes/externallib.php', + 'description' => 'Returns all notes in specified course (or site), for the specified user.', + 'type' => 'read', + 'capabilities' => 'moodle/notes:view' + ), + 'core_notes_get_notes' => array( + 'classname' => 'core_notes_external', + 'methodname' => 'get_notes', + 'classpath' => 'notes/externallib.php', + 'description' => 'Get notes', + 'type' => 'read', + 'capabilities' => 'moodle/notes:view' + ), + 'core_notes_update_notes' => array( + 'classname' => 'core_notes_external', + 'methodname' => 'update_notes', + 'classpath' => 'notes/externallib.php', + 'description' => 'Update notes', + 'type' => 'write', + 'capabilities' => 'moodle/notes:manage' + ), + 'core_notes_view_notes' => array( + 'classname' => 'core_notes_external', + 'methodname' => 'view_notes', + 'classpath' => 'notes/externallib.php', + 'description' => 'Simulates the web interface view of notes/index.php: trigger events.', + 'type' => 'write', + 'capabilities' => 'moodle/notes:view' ), - 'core_output_load_template' => array( - 'classname' => 'core\output\external', - 'methodname' => 'load_template', + 'classname' => 'core\output\external', + 'methodname' => 'load_template', 'description' => 'Load a template for a renderable', - 'type' => 'read', - 'loginrequired' => false, - 'ajax' => true, + 'type' => 'read', + 'loginrequired' => '', + 'ajax' => '1', ), - - // Completion related functions. - 'core_completion_update_activity_completion_status_manually' => array( - 'classname' => 'core_completion_external', - 'methodname' => 'update_activity_completion_status_manually', - 'description' => 'Update completion status for the current user in an activity, only for activities with manual tracking.', - 'type' => 'write', - ), - - 'core_completion_mark_course_self_completed' => array( - 'classname' => 'core_completion_external', - 'methodname' => 'mark_course_self_completed', - 'description' => 'Update the course completion status for the current user (if course self-completion is enabled).', - 'type' => 'write', - ), - - 'core_completion_get_activities_completion_status' => array( - 'classname' => 'core_completion_external', - 'methodname' => 'get_activities_completion_status', - 'description' => 'Return the activities completion status for a user in a course.', - 'type' => 'read', - 'capabilities' => '', - ), - - 'core_completion_get_course_completion_status' => array( - 'classname' => 'core_completion_external', - 'methodname' => 'get_course_completion_status', - 'description' => 'Returns course completion status.', - 'type' => 'read', - 'capabilities' => 'report/completion:view', - ), - - // Rating functions. - 'core_rating_get_item_ratings' => array( - 'classname' => 'core_rating_external', - 'methodname' => 'get_item_ratings', - 'description' => 'Retrieve all the ratings for an item.', - 'type' => 'read', - 'capabilities' => 'moodle/rating:view' - ), - - // Tag functions. - 'core_tag_update_tags' => array( - 'classname' => 'core_tag_external', - 'methodname' => 'update_tags', - 'description' => 'Updates tags', - 'type' => 'write', - 'ajax' => true - ), - - 'core_tag_get_tags' => array( - 'classname' => 'core_tag_external', - 'methodname' => 'get_tags', - 'description' => 'Gets tags by their ids', - 'type' => 'read', - 'ajax' => true - ), - - 'core_tag_get_tagindex' => array( - 'classname' => 'core_tag_external', - 'methodname' => 'get_tagindex', - 'description' => 'Gets tag index page for one tag and one tag area', - 'type' => 'read', - 'ajax' => true - ), - // Question related functions. 'core_question_update_flag' => array( 'classname' => 'core_question_external', @@ -1195,14 +674,146 @@ $functions = array( 'type' => 'write', 'capabilities' => 'moodle/question:flag', ), - - // Badges functions. - 'core_badges_get_user_badges' => array( - 'classname' => 'core_badges_external', - 'methodname' => 'get_user_badges', - 'description' => 'Returns the list of badges awarded to a user.', - 'type' => 'read', - 'capabilities' => 'moodle/badges:viewotherbadges' + 'core_rating_get_item_ratings' => array( + 'classname' => 'core_rating_external', + 'methodname' => 'get_item_ratings', + 'description' => 'Retrieve all the ratings for an item.', + 'type' => 'read', + 'capabilities' => 'moodle/rating:view' + ), + 'core_role_assign_roles' => array( + 'classname' => 'core_role_external', + 'methodname' => 'assign_roles', + 'classpath' => 'enrol/externallib.php', + 'description' => 'Manual role assignments.', + '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', + 'capabilities' => 'moodle/role:assign' + ), + 'core_tag_get_tagindex' => array( + 'classname' => 'core_tag_external', + 'methodname' => 'get_tagindex', + 'description' => 'Gets tag index page for one tag and one tag area', + 'type' => 'read', + 'ajax' => '1', + ), + 'core_tag_get_tags' => array( + 'classname' => 'core_tag_external', + 'methodname' => 'get_tags', + 'description' => 'Gets tags by their ids', + 'type' => 'read', + 'ajax' => '1', + ), + 'core_tag_update_tags' => array( + 'classname' => 'core_tag_external', + 'methodname' => 'update_tags', + 'description' => 'Updates tags', + 'type' => 'write', + 'ajax' => '1', + ), + 'core_update_inplace_editable' => array( + 'classname' => 'core_external', + 'methodname' => 'update_inplace_editable', + 'classpath' => 'lib/external/externallib.php', + 'description' => 'Generic service to update title', + 'type' => 'write', + 'loginrequired' => '1', + 'ajax' => '1', + ), + 'core_user_add_user_device' => array( + 'classname' => 'core_user_external', + 'methodname' => 'add_user_device', + 'classpath' => 'user/externallib.php', + 'description' => 'Store mobile user devices information for PUSH Notifications.', + 'type' => 'write', + ), + 'core_user_add_user_private_files' => array( + 'classname' => 'core_user_external', + 'methodname' => 'add_user_private_files', + 'classpath' => 'user/externallib.php', + 'description' => 'Copy files from a draft area to users private files area.', + 'type' => 'write', + 'capabilities' => 'moodle/user:manageownfiles' + ), + 'core_user_create_users' => array( + 'classname' => 'core_user_external', + 'methodname' => 'create_users', + 'classpath' => 'user/externallib.php', + 'description' => 'Create users.', + 'type' => 'write', + 'capabilities' => 'moodle/user:create' + ), + 'core_user_delete_users' => array( + 'classname' => 'core_user_external', + 'methodname' => 'delete_users', + 'classpath' => 'user/externallib.php', + 'description' => 'Delete users.', + 'type' => 'write', + 'capabilities' => 'moodle/user:delete' + ), + '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' + ), + 'core_user_get_users' => array( + 'classname' => 'core_user_external', + 'methodname' => 'get_users', + 'classpath' => 'user/externallib.php', + 'description' => 'search for users matching the parameters', + 'type' => 'read', + 'capabilities' => 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update' + ), + 'core_user_get_users_by_field' => array( + 'classname' => 'core_user_external', + 'methodname' => 'get_users_by_field', + 'classpath' => 'user/externallib.php', + 'description' => 'Retrieve users\' information for a specified unique field - If you want to do a user search, use ' + . 'core_user_get_users()', + 'type' => 'read', + 'capabilities' => 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update' + ), + 'core_user_remove_user_device' => array( + 'classname' => 'core_user_external', + 'methodname' => 'remove_user_device', + 'classpath' => 'user/externallib.php', + 'description' => 'Remove a user device from the Moodle database.', + 'type' => 'write', + ), + 'core_user_update_users' => array( + 'classname' => 'core_user_external', + 'methodname' => 'update_users', + 'classpath' => 'user/externallib.php', + 'description' => 'Update users.', + 'type' => 'write', + 'capabilities' => 'moodle/user:update', + ), + 'core_user_view_user_list' => array( + 'classname' => 'core_user_external', + 'methodname' => 'view_user_list', + 'classpath' => 'user/externallib.php', + 'description' => 'Simulates the web-interface view of user/index.php (triggering events),.', + 'type' => 'write', + 'capabilities' => 'moodle/course:viewparticipants', + ), + 'core_user_view_user_profile' => array( + 'classname' => 'core_user_external', + 'methodname' => 'view_user_profile', + 'classpath' => 'user/externallib.php', + 'description' => 'Simulates the web-interface view of user/view.php and user/profile.php (triggering events),.', + 'type' => 'write', + 'capabilities' => 'moodle/user:viewdetails', ), // Competencies functions. @@ -1935,75 +1546,74 @@ $functions = array( 'capabilities' => 'moodle/competency:evidencedelete', 'ajax' => true, ), + + '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', + ) ); $services = array( 'Moodle mobile web service' => array( 'functions' => array ( - 'moodle_enrol_get_users_courses', - 'moodle_enrol_get_enrolled_users', - 'moodle_user_get_users_by_id', - 'moodle_webservice_get_siteinfo', - 'moodle_notes_create_notes', - 'moodle_user_get_course_participants_by_id', - 'moodle_user_get_users_by_courseid', - 'moodle_message_send_instantmessages', - 'core_course_get_contents', - 'core_get_component_strings', - 'core_user_add_user_device', + 'core_badges_get_user_badges', 'core_calendar_get_calendar_events', - 'core_enrol_get_users_courses', - 'core_enrol_get_enrolled_users', + 'core_comment_get_comments', + 'core_completion_get_activities_completion_status', + 'core_completion_get_course_completion_status', + 'core_completion_mark_course_self_completed', + 'core_completion_update_activity_completion_status_manually', + 'core_course_get_contents', + 'core_course_get_course_module', + 'core_course_get_course_module_by_instance', + 'core_course_get_courses', + 'core_course_search_courses', + 'core_course_view_course', 'core_enrol_get_course_enrolment_methods', + 'core_enrol_get_enrolled_users', + 'core_enrol_get_users_courses', + 'core_files_get_files', + 'core_get_component_strings', + 'core_grades_update_grades', + 'core_group_get_activity_allowed_groups', + 'core_group_get_activity_groupmode', + 'core_group_get_course_user_groups', + 'core_message_block_contacts', + 'core_message_create_contacts', + 'core_message_delete_contacts', + 'core_message_delete_message', + 'core_message_get_blocked_users', + 'core_message_get_contacts', + 'core_message_get_messages', + 'core_message_mark_message_read', + 'core_message_search_contacts', + 'core_message_send_instant_messages', + 'core_message_unblock_contacts', + 'core_notes_create_notes', + 'core_notes_delete_notes', + 'core_notes_get_course_notes', + 'core_notes_view_notes', + 'core_question_update_flag', + 'core_rating_get_item_ratings', + 'core_user_add_user_device', + 'core_user_add_user_private_files', + 'core_user_get_course_user_profiles', + 'core_user_get_users_by_field', + 'core_user_remove_user_device', + 'core_user_view_user_list', + 'core_user_view_user_profile', + 'core_webservice_get_site_info', 'enrol_guest_get_instance_info', 'enrol_self_enrol_user', 'enrol_self_get_instance_info', - 'core_user_get_users_by_id', - 'core_webservice_get_site_info', - 'core_notes_create_notes', - 'core_notes_delete_notes', - 'core_user_get_course_user_profiles', - 'core_message_send_instant_messages', - 'message_airnotifier_is_system_configured', - 'message_airnotifier_are_notification_preferences_configured', - 'core_grades_update_grades', - 'core_files_get_files', - 'core_message_get_messages', - 'core_message_create_contacts', - 'core_message_delete_contacts', - 'core_message_block_contacts', - 'core_message_unblock_contacts', - 'core_message_get_contacts', - 'core_message_search_contacts', - 'core_message_get_blocked_users', 'gradereport_user_get_grades_table', - 'core_group_get_course_user_groups', - 'core_group_get_activity_allowed_groups', - 'core_group_get_activity_groupmode', - 'core_user_remove_user_device', - 'core_course_get_courses', - 'core_completion_update_activity_completion_status_manually', - 'core_completion_mark_course_self_completed', - 'core_comment_get_comments', - 'core_course_view_course', - 'core_course_search_courses', - 'core_course_get_course_module', - 'core_course_get_course_module_by_instance', - 'core_completion_get_activities_completion_status', - 'core_notes_get_course_notes', - 'core_completion_get_course_completion_status', - 'core_user_view_user_list', - 'core_message_mark_message_read', - 'core_message_delete_message', - 'core_notes_view_notes', - 'core_user_view_user_profile', 'gradereport_user_view_grade_report', - 'core_rating_get_item_ratings', - 'core_user_get_users_by_field', - 'core_user_add_user_private_files', - 'core_question_update_flag', - 'core_badges_get_user_badges', - ), + 'message_airnotifier_are_notification_preferences_configured', + 'message_airnotifier_is_system_configured', + ), 'enabled' => 0, 'restrictedusers' => 0, 'shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE, diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index e6b6cef6b74..2b3b28d04c1 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -2005,5 +2005,45 @@ function xmldb_main_upgrade($oldversion) { // Main savepoint reached. upgrade_main_savepoint(true, 2016042100.00); } + + if ($oldversion < 2016042600.01) { + $deprecatedwebservices = [ + 'moodle_course_create_courses', + 'moodle_course_get_courses', + 'moodle_enrol_get_enrolled_users', + 'moodle_enrol_get_users_courses', + 'moodle_enrol_manual_enrol_users', + 'moodle_file_get_files', + 'moodle_file_upload', + 'moodle_group_add_groupmembers', + 'moodle_group_create_groups', + 'moodle_group_delete_groupmembers', + 'moodle_group_delete_groups', + 'moodle_group_get_course_groups', + 'moodle_group_get_groupmembers', + 'moodle_group_get_groups', + 'moodle_message_send_instantmessages', + 'moodle_notes_create_notes', + 'moodle_role_assign', + 'moodle_role_unassign', + 'moodle_user_create_users', + 'moodle_user_delete_users', + 'moodle_user_get_course_participants_by_id', + 'moodle_user_get_users_by_courseid', + 'moodle_user_get_users_by_id', + 'moodle_user_update_users', + 'core_grade_get_definitions', + 'core_user_get_users_by_id', + 'moodle_webservice_get_siteinfo', + 'mod_forum_get_forum_discussions' + ]; + + list($insql, $params) = $DB->get_in_or_equal($deprecatedwebservices); + $DB->delete_records_select('external_functions', "name $insql", $params); + $DB->delete_records_select('external_services_functions', "functionname $insql", $params); + // Main savepoint reached. + upgrade_main_savepoint(true, 2016042600.01); + } + return true; } diff --git a/message/externallib.php b/message/externallib.php index 9e4443e003f..88d0a5f71bd 100644 --- a/message/externallib.php +++ b/message/externallib.php @@ -1098,62 +1098,3 @@ class core_message_external extends external_api { } } - -/** - * Deprecated message external functions - * - * @package core_message - * @copyright 2011 Jerome Mouneyrac - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not use this class any more. - * @see core_notes_external - */ -class moodle_message_external extends external_api { - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_message_external::send_instant_messages_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 - * - * @param array $messages An array of message to send. - * @return array - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_message_external::send_instant_messages() - */ - public static function send_instantmessages($messages = array()) { - return core_message_external::send_instant_messages($messages); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_message_external::send_instant_messages_returns() - */ - public static function send_instantmessages_returns() { - return core_message_external::send_instant_messages_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function send_instantmessages_is_deprecated() { - return true; - } -} diff --git a/mod/forum/db/services.php b/mod/forum/db/services.php index a0544836b38..502b003e70d 100644 --- a/mod/forum/db/services.php +++ b/mod/forum/db/services.php @@ -37,16 +37,6 @@ $functions = array( 'services' => array(MOODLE_OFFICIAL_MOBILE_SERVICE) ), - 'mod_forum_get_forum_discussions' => array( - 'classname' => 'mod_forum_external', - 'methodname' => 'get_forum_discussions', - 'classpath' => 'mod/forum/externallib.php', - 'description' => 'DEPRECATED (use mod_forum_get_forum_discussions_paginated instead): - Returns a list of forum discussions contained within a given set of forums.', - 'type' => 'read', - 'capabilities' => 'mod/forum:viewdiscussion, mod/forum:viewqandawithoutposting' - ), - 'mod_forum_get_forum_discussion_posts' => array( 'classname' => 'mod_forum_external', 'methodname' => 'get_forum_discussion_posts', diff --git a/mod/forum/externallib.php b/mod/forum/externallib.php index 4fe859c66aa..1b393ec21f3 100644 --- a/mod/forum/externallib.php +++ b/mod/forum/externallib.php @@ -146,219 +146,6 @@ class mod_forum_external extends external_api { ); } - /** - * Describes the parameters for get_forum_discussions. - * - * @return external_external_function_parameters - * @since Moodle 2.5 - * @deprecated Moodle 2.8 MDL-46458 - Please do not call this function any more. - * @see get_forum_discussions_paginated - */ - public static function get_forum_discussions_parameters() { - return new external_function_parameters ( - array( - 'forumids' => new external_multiple_structure(new external_value(PARAM_INT, 'forum ID', - VALUE_REQUIRED, '', NULL_NOT_ALLOWED), 'Array of Forum IDs', VALUE_REQUIRED), - 'limitfrom' => new external_value(PARAM_INT, 'limit from', VALUE_DEFAULT, 0), - 'limitnum' => new external_value(PARAM_INT, 'limit number', VALUE_DEFAULT, 0) - ) - ); - } - - /** - * Returns a list of forum discussions as well as a summary of the discussion - * in a provided list of forums. - * - * @param array $forumids the forum ids - * @param int $limitfrom limit from SQL data - * @param int $limitnum limit number SQL data - * - * @return array the forum discussion details - * @since Moodle 2.5 - * @deprecated Moodle 2.8 MDL-46458 - Please do not call this function any more. - * @see get_forum_discussions_paginated - */ - public static function get_forum_discussions($forumids, $limitfrom = 0, $limitnum = 0) { - global $CFG, $DB, $USER; - - require_once($CFG->dirroot . "/mod/forum/lib.php"); - - // Validate the parameter. - $params = self::validate_parameters(self::get_forum_discussions_parameters(), - array( - 'forumids' => $forumids, - 'limitfrom' => $limitfrom, - 'limitnum' => $limitnum, - )); - $forumids = $params['forumids']; - $limitfrom = $params['limitfrom']; - $limitnum = $params['limitnum']; - - // Array to store the forum discussions to return. - $arrdiscussions = array(); - // Keep track of the users we have looked up in the DB. - $arrusers = array(); - - // Loop through them. - foreach ($forumids as $id) { - // Get the forum object. - $forum = $DB->get_record('forum', array('id' => $id), '*', MUST_EXIST); - $course = get_course($forum->course); - - $modinfo = get_fast_modinfo($course); - $forums = $modinfo->get_instances_of('forum'); - $cm = $forums[$forum->id]; - - // Get the module context. - $modcontext = context_module::instance($cm->id); - - // Validate the context. - self::validate_context($modcontext); - - require_capability('mod/forum:viewdiscussion', $modcontext); - - // Get the discussions for this forum. - $params = array(); - - $groupselect = ""; - $groupmode = groups_get_activity_groupmode($cm, $course); - - if ($groupmode and $groupmode != VISIBLEGROUPS and !has_capability('moodle/site:accessallgroups', $modcontext)) { - // Get all the discussions from all the groups this user belongs to. - $usergroups = groups_get_user_groups($course->id); - if (!empty($usergroups['0'])) { - list($sql, $params) = $DB->get_in_or_equal($usergroups['0']); - $groupselect = "AND (groupid $sql OR groupid = -1)"; - } - } - array_unshift($params, $id); - $select = "forum = ? $groupselect"; - - if ($discussions = $DB->get_records_select('forum_discussions', $select, $params, 'timemodified DESC', '*', - $limitfrom, $limitnum)) { - - // Check if they can view full names. - $canviewfullname = has_capability('moodle/site:viewfullnames', $modcontext); - // Get the unreads array, this takes a forum id and returns data for all discussions. - $unreads = array(); - if ($cantrack = forum_tp_can_track_forums($forum)) { - if ($forumtracked = forum_tp_is_tracked($forum)) { - $unreads = forum_get_discussions_unread($cm); - } - } - // The forum function returns the replies for all the discussions in a given forum. - $replies = forum_count_discussion_replies($id); - - foreach ($discussions as $discussion) { - // This function checks capabilities, timed discussions, groups and qanda forums posting. - if (!forum_user_can_see_discussion($forum, $discussion, $modcontext)) { - continue; - } - - $usernamefields = user_picture::fields(); - // If we don't have the users details then perform DB call. - if (empty($arrusers[$discussion->userid])) { - $arrusers[$discussion->userid] = $DB->get_record('user', array('id' => $discussion->userid), - $usernamefields, MUST_EXIST); - } - // Get the subject. - $subject = $DB->get_field('forum_posts', 'subject', array('id' => $discussion->firstpost), MUST_EXIST); - // Create object to return. - $return = new stdClass(); - $return->id = (int) $discussion->id; - $return->course = $discussion->course; - $return->forum = $discussion->forum; - $return->name = $discussion->name; - $return->userid = $discussion->userid; - $return->groupid = $discussion->groupid; - $return->assessed = $discussion->assessed; - $return->timemodified = (int) $discussion->timemodified; - $return->usermodified = $discussion->usermodified; - $return->timestart = $discussion->timestart; - $return->timeend = $discussion->timeend; - $return->firstpost = (int) $discussion->firstpost; - $return->firstuserfullname = fullname($arrusers[$discussion->userid], $canviewfullname); - $return->firstuserimagealt = $arrusers[$discussion->userid]->imagealt; - $return->firstuserpicture = $arrusers[$discussion->userid]->picture; - $return->firstuseremail = $arrusers[$discussion->userid]->email; - $return->subject = $subject; - $return->numunread = ''; - if ($cantrack && $forumtracked) { - if (isset($unreads[$discussion->id])) { - $return->numunread = (int) $unreads[$discussion->id]; - } - } - // Check if there are any replies to this discussion. - if (!empty($replies[$discussion->id])) { - $return->numreplies = (int) $replies[$discussion->id]->replies; - $return->lastpost = (int) $replies[$discussion->id]->lastpostid; - } else { // No replies, so the last post will be the first post. - $return->numreplies = 0; - $return->lastpost = (int) $discussion->firstpost; - } - // Get the last post as well as the user who made it. - $lastpost = $DB->get_record('forum_posts', array('id' => $return->lastpost), '*', MUST_EXIST); - if (empty($arrusers[$lastpost->userid])) { - $arrusers[$lastpost->userid] = $DB->get_record('user', array('id' => $lastpost->userid), - $usernamefields, MUST_EXIST); - } - $return->lastuserid = $lastpost->userid; - $return->lastuserfullname = fullname($arrusers[$lastpost->userid], $canviewfullname); - $return->lastuserimagealt = $arrusers[$lastpost->userid]->imagealt; - $return->lastuserpicture = $arrusers[$lastpost->userid]->picture; - $return->lastuseremail = $arrusers[$lastpost->userid]->email; - // Add the discussion statistics to the array to return. - $arrdiscussions[$return->id] = (array) $return; - } - } - } - - return $arrdiscussions; - } - - /** - * Describes the get_forum_discussions return value. - * - * @return external_single_structure - * @since Moodle 2.5 - * @deprecated Moodle 2.8 MDL-46458 - Please do not call this function any more. - * @see get_forum_discussions_paginated - */ - public static function get_forum_discussions_returns() { - return new external_multiple_structure( - new external_single_structure( - array( - 'id' => new external_value(PARAM_INT, 'Forum id'), - 'course' => new external_value(PARAM_INT, 'Course id'), - 'forum' => new external_value(PARAM_INT, 'The forum id'), - 'name' => new external_value(PARAM_TEXT, 'Discussion name'), - 'userid' => new external_value(PARAM_INT, 'User id'), - 'groupid' => new external_value(PARAM_INT, 'Group id'), - 'assessed' => new external_value(PARAM_INT, 'Is this assessed?'), - 'timemodified' => new external_value(PARAM_INT, 'Time modified'), - 'usermodified' => new external_value(PARAM_INT, 'The id of the user who last modified'), - 'timestart' => new external_value(PARAM_INT, 'Time discussion can start'), - 'timeend' => new external_value(PARAM_INT, 'Time discussion ends'), - 'firstpost' => new external_value(PARAM_INT, 'The first post in the discussion'), - 'firstuserfullname' => new external_value(PARAM_TEXT, 'The discussion creators fullname'), - 'firstuserimagealt' => new external_value(PARAM_TEXT, 'The discussion creators image alt'), - 'firstuserpicture' => new external_value(PARAM_INT, 'The discussion creators profile picture'), - 'firstuseremail' => new external_value(PARAM_TEXT, 'The discussion creators email'), - 'subject' => new external_value(PARAM_TEXT, 'The discussion subject'), - 'numreplies' => new external_value(PARAM_TEXT, 'The number of replies in the discussion'), - 'numunread' => new external_value(PARAM_TEXT, 'The number of unread posts, blank if this value is - not available due to forum settings.'), - 'lastpost' => new external_value(PARAM_INT, 'The id of the last post in the discussion'), - 'lastuserid' => new external_value(PARAM_INT, 'The id of the user who made the last post'), - 'lastuserfullname' => new external_value(PARAM_TEXT, 'The last person to posts fullname'), - 'lastuserimagealt' => new external_value(PARAM_TEXT, 'The last person to posts image alt'), - 'lastuserpicture' => new external_value(PARAM_INT, 'The last person to posts profile picture'), - 'lastuseremail' => new external_value(PARAM_TEXT, 'The last person to posts email'), - ), 'discussion' - ) - ); - } - /** * Describes the parameters for get_forum_discussion_posts. * diff --git a/mod/forum/tests/externallib_test.php b/mod/forum/tests/externallib_test.php index dbbbc281ece..455abcaa5ee 100644 --- a/mod/forum/tests/externallib_test.php +++ b/mod/forum/tests/externallib_test.php @@ -172,208 +172,6 @@ class mod_forum_external_testcase extends externallib_advanced_testcase { $this->assertCount(0, $forums); } - /** - * Test get forum discussions - */ - public function test_mod_forum_get_forum_discussions() { - global $USER, $CFG, $DB; - - $this->resetAfterTest(true); - - // Set the CFG variable to allow track forums. - $CFG->forum_trackreadposts = true; - - // Create a user who can track forums. - $record = new stdClass(); - $record->trackforums = true; - $user1 = self::getDataGenerator()->create_user($record); - // Create a bunch of other users to post. - $user2 = self::getDataGenerator()->create_user(); - $user3 = self::getDataGenerator()->create_user(); - $user4 = self::getDataGenerator()->create_user(); - - // Set the first created user to the test user. - self::setUser($user1); - - // Create courses to add the modules. - $course1 = self::getDataGenerator()->create_course(); - $course2 = self::getDataGenerator()->create_course(); - - // First forum with tracking off. - $record = new stdClass(); - $record->course = $course1->id; - $record->trackingtype = FORUM_TRACKING_OFF; - $forum1 = self::getDataGenerator()->create_module('forum', $record); - - // Second forum of type 'qanda' with tracking enabled. - $record = new stdClass(); - $record->course = $course2->id; - $record->type = 'qanda'; - $record->trackingtype = FORUM_TRACKING_FORCED; - $forum2 = self::getDataGenerator()->create_module('forum', $record); - - // Add discussions to the forums. - $record = new stdClass(); - $record->course = $course1->id; - $record->userid = $user1->id; - $record->forum = $forum1->id; - $discussion1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); - - $record = new stdClass(); - $record->course = $course2->id; - $record->userid = $user2->id; - $record->forum = $forum2->id; - $discussion2 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_discussion($record); - - // Add three replies to the discussion 1 from different users. - $record = new stdClass(); - $record->discussion = $discussion1->id; - $record->parent = $discussion1->firstpost; - $record->userid = $user2->id; - $discussion1reply1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); - - $record->parent = $discussion1reply1->id; - $record->userid = $user3->id; - $discussion1reply2 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); - - $record->userid = $user4->id; - $discussion1reply3 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); - - // Add two replies to discussion 2 from different users. - $record = new stdClass(); - $record->discussion = $discussion2->id; - $record->parent = $discussion2->firstpost; - $record->userid = $user1->id; - $discussion2reply1 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); - - $record->parent = $discussion2reply1->id; - $record->userid = $user3->id; - $discussion2reply2 = self::getDataGenerator()->get_plugin_generator('mod_forum')->create_post($record); - - // Check the forums were correctly created. - $this->assertEquals(2, $DB->count_records_select('forum', 'id = :forum1 OR id = :forum2', - array('forum1' => $forum1->id, 'forum2' => $forum2->id))); - - // Check the discussions were correctly created. - $this->assertEquals(2, $DB->count_records_select('forum_discussions', 'forum = :forum1 OR forum = :forum2', - array('forum1' => $forum1->id, 'forum2' => $forum2->id))); - - // Check the posts were correctly created, don't forget each discussion created also creates a post. - $this->assertEquals(7, $DB->count_records_select('forum_posts', 'discussion = :discussion1 OR discussion = :discussion2', - array('discussion1' => $discussion1->id, 'discussion2' => $discussion2->id))); - - // Enrol the user in the first course. - $enrol = enrol_get_plugin('manual'); - // Following line enrol and assign default role id to the user. - // So the user automatically gets mod/forum:viewdiscussion on all forums of the course. - $this->getDataGenerator()->enrol_user($user1->id, $course1->id); - - // Now enrol into the second course. - // We don't use the dataGenerator as we need to get the $instance2 to unenrol later. - $enrolinstances = enrol_get_instances($course2->id, true); - foreach ($enrolinstances as $courseenrolinstance) { - if ($courseenrolinstance->enrol == "manual") { - $instance2 = $courseenrolinstance; - break; - } - } - $enrol->enrol_user($instance2, $user1->id); - - // Assign capabilities to view discussions for forum 2. - $cm = get_coursemodule_from_id('forum', $forum2->cmid, 0, false, MUST_EXIST); - $context = context_module::instance($cm->id); - $newrole = create_role('Role 2', 'role2', 'Role 2 description'); - $this->assignUserCapability('mod/forum:viewdiscussion', $context->id, $newrole); - - // Create what we expect to be returned when querying the forums. - $expecteddiscussions = array(); - $expecteddiscussions[] = array( - 'id' => $discussion1->id, - 'course' => $discussion1->course, - 'forum' => $discussion1->forum, - 'name' => $discussion1->name, - 'firstpost' => $discussion1->firstpost, - 'userid' => $discussion1->userid, - 'groupid' => $discussion1->groupid, - 'assessed' => $discussion1->assessed, - 'timemodified' => $discussion1reply3->created, - 'usermodified' => $discussion1reply3->userid, - 'timestart' => $discussion1->timestart, - 'timeend' => $discussion1->timeend, - 'firstuserfullname' => fullname($user1), - 'firstuserimagealt' => $user1->imagealt, - 'firstuserpicture' => $user1->picture, - 'firstuseremail' => $user1->email, - 'subject' => $discussion1->name, - 'numreplies' => 3, - 'numunread' => '', - 'lastpost' => $discussion1reply3->id, - 'lastuserid' => $user4->id, - 'lastuserfullname' => fullname($user4), - 'lastuserimagealt' => $user4->imagealt, - 'lastuserpicture' => $user4->picture, - 'lastuseremail' => $user4->email - ); - $expecteddiscussions[] = array( - 'id' => $discussion2->id, - 'course' => $discussion2->course, - 'forum' => $discussion2->forum, - 'name' => $discussion2->name, - 'firstpost' => $discussion2->firstpost, - 'userid' => $discussion2->userid, - 'groupid' => $discussion2->groupid, - 'assessed' => $discussion2->assessed, - 'timemodified' => $discussion2reply2->created, - 'usermodified' => $discussion2reply2->userid, - 'timestart' => $discussion2->timestart, - 'timeend' => $discussion2->timeend, - 'firstuserfullname' => fullname($user2), - 'firstuserimagealt' => $user2->imagealt, - 'firstuserpicture' => $user2->picture, - 'firstuseremail' => $user2->email, - 'subject' => $discussion2->name, - 'numreplies' => 2, - 'numunread' => 3, - 'lastpost' => $discussion2reply2->id, - 'lastuserid' => $user3->id, - 'lastuserfullname' => fullname($user3), - 'lastuserimagealt' => $user3->imagealt, - 'lastuserpicture' => $user3->picture, - 'lastuseremail' => $user3->email - ); - - // Call the external function passing forum ids. - $discussions = mod_forum_external::get_forum_discussions(array($forum1->id, $forum2->id)); - $discussions = external_api::clean_returnvalue(mod_forum_external::get_forum_discussions_returns(), $discussions); - $this->assertEquals($expecteddiscussions, $discussions); - - // Remove the users post from the qanda forum and ensure they can still see the discussion. - $DB->delete_records('forum_posts', array('id' => $discussion2reply1->id)); - $discussions = mod_forum_external::get_forum_discussions(array($forum2->id)); - $discussions = external_api::clean_returnvalue(mod_forum_external::get_forum_discussions_returns(), $discussions); - $this->assertEquals(1, count($discussions)); - - // Call without required view discussion capability. - $this->unassignUserCapability('mod/forum:viewdiscussion', null, null, $course1->id); - try { - mod_forum_external::get_forum_discussions(array($forum1->id)); - $this->fail('Exception expected due to missing capability.'); - } catch (moodle_exception $e) { - $this->assertEquals('nopermissions', $e->errorcode); - } - - // Unenrol user from second course. - $enrol->unenrol_user($instance2, $user1->id); - - // Call for the second course we unenrolled the user from, make sure exception thrown. - try { - mod_forum_external::get_forum_discussions(array($forum2->id)); - $this->fail('Exception expected due to being unenrolled from the course.'); - } catch (moodle_exception $e) { - $this->assertEquals('requireloginerror', $e->errorcode); - } - } - /** * Test get forum posts */ diff --git a/notes/externallib.php b/notes/externallib.php index b697bf47039..6c07faffeb0 100644 --- a/notes/externallib.php +++ b/notes/externallib.php @@ -714,65 +714,3 @@ class core_notes_external extends external_api { } } - -/** - * Deprecated notes external functions - * - * @package core_notes - * @copyright 2011 Jerome Mouneyrac - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not use this class any more. - * @see core_notes_external - */ -class moodle_notes_external extends external_api { - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_notes_external::create_notes_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) - * - * @param array $notes An array of notes to create. - * @return array (success infos and fail infos) - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_notes_external::create_notes() - */ - public static function create_notes($notes = array()) { - return core_notes_external::create_notes($notes); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_notes_external::create_notes_returns() - */ - public static function create_notes_returns() { - return core_notes_external::create_notes_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function create_notes_is_deprecated() { - return true; - } - -} diff --git a/user/externallib.php b/user/externallib.php index 8fb8df5faff..7632d4c2667 100644 --- a/user/externallib.php +++ b/user/externallib.php @@ -746,6 +746,7 @@ class core_user_external extends external_api { * * @return external_function_parameters * @since Moodle 2.2 +<<<<<<< HEAD * @deprecated Moodle 2.5 MDL-38030 - Please do not call this function any more. * @see core_user_external::get_users_by_field_parameters() */ @@ -852,6 +853,8 @@ class core_user_external extends external_api { * * @return external_function_parameters * @since Moodle 2.2 +======= +>>>>>>> MDL-49414 webservices: Remove deprecated functions */ public static function get_course_user_profiles_parameters() { return new external_function_parameters( @@ -1447,304 +1450,3 @@ class core_user_external extends external_api { } } - - /** - * Deprecated user external functions - * - * @package core_user - * @copyright 2009 Petr Skodak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not use this class any more. - * @see core_user_external - */ -class moodle_user_external extends external_api { - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::create_users_parameters() - */ - public static function create_users_parameters() { - return core_user_external::create_users_parameters(); - } - - /** - * Create one or more users - * - * @param array $users An array of users to create. - * @return array An array of arrays - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::create_users() - */ - public static function create_users($users) { - return core_user_external::create_users($users); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::create_users_returns() - */ - public static function create_users_returns() { - return core_user_external::create_users_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function create_users_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::delete_users_parameters() - */ - public static function delete_users_parameters() { - return core_user_external::delete_users_parameters(); - } - - /** - * Delete users - * - * @param array $userids - * @return null - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::delete_users() - */ - public static function delete_users($userids) { - return core_user_external::delete_users($userids); - } - - /** - * Returns description of method result value - * - * @return null - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::delete_users_returns() - */ - public static function delete_users_returns() { - return core_user_external::delete_users_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function delete_users_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::update_users_parameters() - */ - public static function update_users_parameters() { - return core_user_external::update_users_parameters(); - } - - /** - * Update users - * - * @param array $users - * @return null - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::update_users() - */ - public static function update_users($users) { - return core_user_external::update_users($users); - } - - /** - * Returns description of method result value - * - * @return null - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::update_users_returns() - */ - public static function update_users_returns() { - return core_user_external::update_users_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function update_users_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::get_users_by_id_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 - * - * @param array $userids array of user ids - * @return array An array of arrays describing users - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::get_users_by_id() - */ - public static function get_users_by_id($userids) { - return core_user_external::get_users_by_id($userids); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.0 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::get_users_by_id_returns() - */ - public static function get_users_by_id_returns() { - return core_user_external::get_users_by_id_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_users_by_id_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::get_course_user_profiles_parameters() - */ - public static function get_course_participants_by_id_parameters() { - return core_user_external::get_course_user_profiles_parameters(); - } - - /** - * Get course participant's details - * - * @param array $userlist array of user ids and according course ids - * @return array An array of arrays describing course participants - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::get_course_user_profiles() - */ - public static function get_course_participants_by_id($userlist) { - return core_user_external::get_course_user_profiles($userlist); - } - - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_user_external::get_course_user_profiles_returns() - */ - public static function get_course_participants_by_id_returns() { - return core_user_external::get_course_user_profiles_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_course_participants_by_id_is_deprecated() { - return true; - } - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_enrol_external::get_enrolled_users_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 - * - * @param int $courseid course id - * @param array $options options { - * 'name' => option name - * 'value' => option value - * } - * @return array An array of users - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_enrol_external::get_enrolled_users() - */ - public static function get_users_by_courseid($courseid, $options = array()) { - global $CFG; - require_once($CFG->dirroot . '/enrol/externallib.php'); - return core_enrol_external::get_enrolled_users($courseid, $options); - } - /** - * Returns description of method result value - * - * @return external_description - * @since Moodle 2.1 - * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. - * @see core_enrol_external::get_enrolled_users_returns() - */ - 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(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_users_by_courseid_is_deprecated() { - return true; - } -} diff --git a/user/tests/externallib_test.php b/user/tests/externallib_test.php index 7b79bf1cc73..54eb4e578d3 100644 --- a/user/tests/externallib_test.php +++ b/user/tests/externallib_test.php @@ -558,96 +558,6 @@ class core_user_externallib_testcase extends externallib_advanced_testcase { core_user_external::delete_users(array($user1->id, $user2->id)); } - /** - * Test get_users_by_id - */ - public function test_get_users_by_id() { - global $USER, $CFG; - - $this->resetAfterTest(true); - - $user1 = array( - 'username' => 'usernametest1', - 'idnumber' => 'idnumbertest1', - 'firstname' => 'First Name User Test 1', - 'lastname' => 'Last Name User Test 1', - 'email' => 'usertest1@example.com', - 'address' => '2 Test Street Perth 6000 WA', - 'phone1' => '01010101010', - 'phone2' => '02020203', - 'icq' => 'testuser1', - 'skype' => 'testuser1', - 'yahoo' => 'testuser1', - 'aim' => 'testuser1', - 'msn' => 'testuser1', - 'department' => 'Department of user 1', - 'institution' => 'Institution of user 1', - 'description' => 'This is a description for user 1', - 'descriptionformat' => FORMAT_MOODLE, - 'city' => 'Perth', - 'url' => 'http://moodle.org', - 'country' => 'AU' - ); - $user1 = self::getDataGenerator()->create_user($user1); - if (!empty($CFG->usetags)) { - require_once($CFG->dirroot . '/user/editlib.php'); - $user1->interests = array('Cinema', 'Tennis', 'Dance', 'Guitar', 'Cooking'); - useredit_update_interests($user1, $user1->interests); - } - $user2 = self::getDataGenerator()->create_user(); - - $context = context_system::instance(); - $roleid = $this->assignUserCapability('moodle/user:viewdetails', $context->id); - - // Call the external function. - $returnedusers = core_user_external::get_users_by_id(array( - $USER->id, $user1->id, $user2->id)); - - // We need to execute the return values cleaning process to simulate the web service server. - $returnedusers = external_api::clean_returnvalue(core_user_external::get_users_by_id_returns(), $returnedusers); - - // Check we retrieve the good total number of enrolled users + no error on capability. - $this->assertEquals(3, count($returnedusers)); - - // Do the same call as admin to receive all possible fields. - $this->setAdminUser(); - $USER->email = "admin@example.com"; - - // Call the external function. - $returnedusers = core_user_external::get_users_by_id(array( - $USER->id, $user1->id, $user2->id)); - - // We need to execute the return values cleaning process to simulate the web service server. - $returnedusers = external_api::clean_returnvalue(core_user_external::get_users_by_id_returns(), $returnedusers); - - foreach($returnedusers as $enrolleduser) { - if ($enrolleduser['username'] == $user1->username) { - $this->assertEquals($user1->idnumber, $enrolleduser['idnumber']); - $this->assertEquals($user1->firstname, $enrolleduser['firstname']); - $this->assertEquals($user1->lastname, $enrolleduser['lastname']); - $this->assertEquals($user1->email, $enrolleduser['email']); - $this->assertEquals($user1->address, $enrolleduser['address']); - $this->assertEquals($user1->phone1, $enrolleduser['phone1']); - $this->assertEquals($user1->phone2, $enrolleduser['phone2']); - $this->assertEquals($user1->icq, $enrolleduser['icq']); - $this->assertEquals($user1->skype, $enrolleduser['skype']); - $this->assertEquals($user1->yahoo, $enrolleduser['yahoo']); - $this->assertEquals($user1->aim, $enrolleduser['aim']); - $this->assertEquals($user1->msn, $enrolleduser['msn']); - $this->assertEquals($user1->department, $enrolleduser['department']); - $this->assertEquals($user1->institution, $enrolleduser['institution']); - $this->assertEquals($user1->description, $enrolleduser['description']); - $this->assertEquals(FORMAT_HTML, $enrolleduser['descriptionformat']); - $this->assertEquals($user1->city, $enrolleduser['city']); - $this->assertEquals($user1->country, $enrolleduser['country']); - $this->assertEquals($user1->url, $enrolleduser['url']); - if (!empty($CFG->usetags)) { - $this->assertEquals(implode(', ', $user1->interests), $enrolleduser['interests']); - } - } - } - } - /** * Test update_users */ diff --git a/version.php b/version.php index f24a20f383b..bf69ca37b63 100644 --- a/version.php +++ b/version.php @@ -29,7 +29,7 @@ defined('MOODLE_INTERNAL') || die(); -$version = 2016042600.00; // YYYYMMDD = weekly release date of this DEV branch. +$version = 2016042600.01; // 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 b3dc59a1cb1..45448351fb6 100644 --- a/webservice/externallib.php +++ b/webservice/externallib.php @@ -262,65 +262,3 @@ class core_webservice_external extends external_api { ); } } - -/** - * Deprecated web service related functions - * - * @package core_webservice - * @category external - * @copyright 2011 Jerome Mouneyrac - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - * @deprecated Moodle 2.2 MDL-29106 - please do not use this class any more. - * @see core_webservice_external - * @since Moodle 2.1 - */ -class moodle_webservice_external extends external_api { - - /** - * Returns description of method parameters - * - * @return external_function_parameters - * @deprecated Moodle 2.2 - please do not use this function any more. - * @see core_webservice_external::get_site_info_parameters - * @since Moodle 2.1 - */ - 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 - * - * @param array $serviceshortnames of service shortnames - the functions of these services will be returned - * @return array - * @deprecated Moodle 2.2 - please do not use this function any more. - * @see core_webservice_external::get_site_info - * @since Moodle 2.1 - */ - public function get_siteinfo($serviceshortnames = array()) { - return core_webservice_external::get_site_info($serviceshortnames); - } - - /** - * Returns description of method result value - * - * @return external_single_structure - * @deprecated Moodle 2.2 - please do not use this function any more. - * @see core_webservice_external::get_site_info_returns - * @since Moodle 2.1 - */ - public static function get_siteinfo_returns() { - return core_webservice_external::get_site_info_returns(); - } - - /** - * Marking the method as deprecated. - * - * @return bool - */ - public static function get_siteinfo_is_deprecated() { - return true; - } -} diff --git a/webservice/lib.php b/webservice/lib.php index 84bcc794ee4..fc9c1780a2b 100644 --- a/webservice/lib.php +++ b/webservice/lib.php @@ -518,21 +518,20 @@ class webservice { * Example of returned value: * Array * ( - * [moodle_group_create_groups] => Array + * [core_group_create_groups] => Array * ( * [0] => moodle/course:managegroups * ) * - * [moodle_enrol_get_enrolled_users] => Array + * [core_enrol_get_enrolled_users] => Array * ( - * [0] => moodle/site:viewparticipants - * [1] => moodle/course:viewparticipants - * [2] => moodle/role:review - * [3] => moodle/site:accessallgroups - * [4] => moodle/course:enrolreview + * [0] => moodle/user:viewdetails + * [1] => moodle/user:viewhiddendetails + * [2] => moodle/course:useremail + * [3] => moodle/user:update + * [4] => moodle/site:accessallgroups * ) * ) - * * @param int $serviceid service id * @return array */ diff --git a/webservice/renderer.php b/webservice/renderer.php index 4dc971d06ed..d83f5a00217 100644 --- a/webservice/renderer.php +++ b/webservice/renderer.php @@ -373,7 +373,7 @@ class core_webservice_renderer extends plugin_renderer_base { * ws description object can be 'external_multiple_structure', 'external_single_structure' * or 'external_value' * - * Example of documentation for moodle_group_create_groups function: + * Example of documentation for core_group_create_groups function: * list of ( * object { * courseid int //id of course diff --git a/webservice/upgrade.txt b/webservice/upgrade.txt index a7aa0f7ad1b..02f922440dd 100644 --- a/webservice/upgrade.txt +++ b/webservice/upgrade.txt @@ -12,6 +12,11 @@ This information is intended for authors of webservices, not people writing webs * The xmlrpc server is no longer enabled when the Mobile service is activated. * Support for the AMF protocol has been dropped completely. * As Zend Framework has been removed, the webservice_zend_* classes have also been removed. +* Zend_SOAP has been dropped. The native PHP SoapClient and SoapServer classes are now being used instead. WSDL is now + generated by the new class webservice_soap_wsdl. For fault strings, a different error message might be shown depending + on the string returned by the getMessage() method of the thrown exception. +* With Zend_SOAP dropped, moodle_zend_soap_server is now also deprecated. +* As mentioned in the 2.9 notes, deprecated web service functions have now been removed. === 3.0 === diff --git a/webservice/upload.php b/webservice/upload.php index 619bb37e4bb..7df73d92f92 100644 --- a/webservice/upload.php +++ b/webservice/upload.php @@ -70,10 +70,10 @@ $context = context_user::instance($USER->id); // Allow allways to upload files to the draft area, no matter if the user can't manage his own files. // Files required by other webservices (like mod_assign ones) must be uploaded to the draft area. if ($filearea === 'private') { - require_capability('moodle/user:manageownfiles', $context); + throw new moodle_exception('privatefilesupload'); } -if ($filearea !== 'private' and $filearea !== 'draft') { +if ($filearea !== 'draft') { // Do not dare to allow more areas here! throw new file_exception('error'); } @@ -136,24 +136,6 @@ if ($filearea == 'draft' && $itemid <= 0) { // Get any existing file size limits. $maxareabytes = FILE_AREA_MAX_BYTES_UNLIMITED; $maxupload = get_user_max_upload_file_size($context, $CFG->maxbytes); -if ($filearea == 'private') { - // Private files area is limited by $CFG->userquota. - if (!has_capability('moodle/user:ignoreuserquota', $context)) { - $maxareabytes = $CFG->userquota; - } - - // Count the size of all existing files in this area. - if ($maxareabytes > 0) { - $usedspace = 0; - $existingfiles = $fs->get_area_files($context->id, 'user', $filearea, false, 'id', false); - foreach ($existingfiles as $file) { - $usedspace += $file->get_filesize(); - } - if ($totalsize > ($maxareabytes - $usedspace)) { - throw new file_exception('userquotalimit'); - } - } -} // Check the size of this upload. if ($maxupload !== USER_CAN_IGNORE_FILE_SIZE_LIMITS && $totalsize > $maxupload) {