* @return external_function_parameters
*/
public static function add_groupmembers_parameters() {
- return new external_multiple_structure(
- new external_single_structure(
- array(
- 'groupid' => new external_value(PARAM_INT, 'group record id'),
- 'userid' => new external_value(PARAM_INT, 'user id'),
+ return new external_function_parameters(
+ array(
+ 'members'=> new external_multiple_structure(
+ new external_single_structure(
+ array(
+ 'groupid' => new external_value(PARAM_INT, 'group record id'),
+ 'userid' => new external_value(PARAM_INT, 'user id'),
+ )
+ )
)
)
);
self::validate_context($context);
require_capability('moodle/course:managegroups', $context);
+ // now make sure user is enrolled in course - this is mandatory requirement,
+ // unfortunately this is extermely slow
+ require_capability('moodle/course:view', $context, $userid, false);
+
groups_add_member($group, $user);
}
} catch (Exception $ex) {
* @return external_function_parameters
*/
public static function delete_groupmembers_parameters() {
- return new external_multiple_structure(
- new external_single_structure(
- array(
- 'groupid' => new external_value(PARAM_INT, 'group record id'),
- 'userid' => new external_value(PARAM_INT, 'user id'),
+ return new external_function_parameters(
+ array(
+ 'members'=> new external_multiple_structure(
+ new external_single_structure(
+ array(
+ 'groupid' => new external_value(PARAM_INT, 'group record id'),
+ 'userid' => new external_value(PARAM_INT, 'user id'),
+ )
+ )
)
)
);
'description' => 'Returns group members.',
'type' => 'read',
),
-/*
+
'moodle_group_add_groupmembers' => array(
'classname' => 'moodle_group_external',
'methodname' => 'add_groupmembers',
'description' => 'Deletes group members.',
'type' => 'delete',
),
-*/
+
// === user related functions ===
/*
'moodle_user_create_users' => array(
// This is compared against the values stored in the database to determine
// whether upgrades should be performed (see lib/db/*.php)
- $version = 2009110500; // YYYYMMDD = date of the last version bump
+ $version = 2009110501; // YYYYMMDD = date of the last version bump
// XX = daily increments
$release = '2.0 dev (Build: 20091105)'; // Human-friendly version name
}
}
-
class moodle_group_get_groupmembers_form extends moodleform {
public function definition() {
global $CFG;
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
+ $mform->addElement('text', 'wsusername', 'wsusername');
+ $mform->addElement('text', 'wspassword', 'wspassword');
+ $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->addElement('hidden', 'function');
+ $mform->setType('function', PARAM_SAFEDIR);
+
+ $mform->addElement('hidden', 'protocol');
+ $mform->setType('protocol', PARAM_SAFEDIR);
+
+ $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);
+
+ $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;
+ }
+}