mirror of
https://github.com/moodle/moodle.git
synced 2025-04-15 05:25:08 +02:00
MDL-12886 more external groups api
This commit is contained in:
parent
c863dc389c
commit
4efa248399
@ -336,11 +336,15 @@ class moodle_group_external extends external_api {
|
||||
* @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'),
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
@ -373,6 +377,10 @@ class moodle_group_external extends external_api {
|
||||
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) {
|
||||
@ -396,11 +404,15 @@ class moodle_group_external extends external_api {
|
||||
* @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'),
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
@ -67,7 +67,7 @@ $functions = array(
|
||||
'description' => 'Returns group members.',
|
||||
'type' => 'read',
|
||||
),
|
||||
/*
|
||||
|
||||
'moodle_group_add_groupmembers' => array(
|
||||
'classname' => 'moodle_group_external',
|
||||
'methodname' => 'add_groupmembers',
|
||||
@ -83,7 +83,7 @@ $functions = array(
|
||||
'description' => 'Deletes group members.',
|
||||
'type' => 'delete',
|
||||
),
|
||||
*/
|
||||
|
||||
// === user related functions ===
|
||||
/*
|
||||
'moodle_user_create_users' => array(
|
||||
|
@ -6,7 +6,7 @@
|
||||
// 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
|
||||
|
@ -208,7 +208,6 @@ class moodle_group_delete_groups_form extends moodleform {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class moodle_group_get_groupmembers_form extends moodleform {
|
||||
public function definition() {
|
||||
global $CFG;
|
||||
@ -257,3 +256,52 @@ class moodle_group_get_groupmembers_form extends moodleform {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user