. /** * Web services services UI * * @package webservice * @copyright 2009 Moodle Pty Ltd (http://moodle.com) * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once('../../config.php'); require_once($CFG->libdir . '/adminlib.php'); require_once($CFG->dirroot . '/admin/webservice/lib.php'); require_once($CFG->dirroot . '/webservice/lib.php'); $id = required_param('id', PARAM_INT); $PAGE->set_url('/admin/webservice/service_users.php', array('id' => $id)); $PAGE->navbar->ignore_active(true); $PAGE->navbar->add(get_string('administrationsite')); $PAGE->navbar->add(get_string('plugins', 'admin')); $PAGE->navbar->add(get_string('webservices', 'webservice')); $PAGE->navbar->add(get_string('externalservices', 'webservice'), new moodle_url('/admin/settings.php?section=externalservices')); $PAGE->navbar->add(get_string('serviceusers', 'webservice')); admin_externalpage_setup('externalserviceusers'); $webservicemanager = new webservice(); /// Get the user_selector we will need. $potentialuserselector = new service_user_selector('addselect', array('serviceid' => $id, 'displayallowedusers' => 0)); $alloweduserselector = new service_user_selector('removeselect', array('serviceid' => $id, 'displayallowedusers' => 1)); /// Process incoming user assignments to the service if (optional_param('add', false, PARAM_BOOL) && confirm_sesskey()) { $userstoassign = $potentialuserselector->get_selected_users(); if (!empty($userstoassign)) { foreach ($userstoassign as $adduser) { $serviceuser = new object(); $serviceuser->externalserviceid = $id; $serviceuser->userid = $adduser->id; $webservicemanager->add_ws_authorised_user($serviceuser); add_to_log(1, 'core', 'assign', $CFG->admin . '/webservice/service_users.php?id=' . $id, 'add', '', $adduser->id); } $potentialuserselector->invalidate_selected_users(); $alloweduserselector->invalidate_selected_users(); } } /// Process removing user assignments to the service if (optional_param('remove', false, PARAM_BOOL) && confirm_sesskey()) { $userstoremove = $alloweduserselector->get_selected_users(); if (!empty($userstoremove)) { foreach ($userstoremove as $removeuser) { $webservicemanager->remove_ws_authorised_user($removeuser, $id); add_to_log(1, 'core', 'assign', $CFG->admin . '/webservice/service_users.php?id=' . $id, 'remove', '', $removeuser->id); } $potentialuserselector->invalidate_selected_users(); $alloweduserselector->invalidate_selected_users(); } } /// Print the form. /// display the UI $renderer = $PAGE->get_renderer('core', 'webservice'); echo $OUTPUT->header(); echo $OUTPUT->heading(get_string('selectauthorisedusers', 'webservice'), 3, 'main'); $selectoroptions = new stdClass(); $selectoroptions->serviceid = $id; $selectoroptions->alloweduserselector = $alloweduserselector; $selectoroptions->potentialuserselector = $potentialuserselector; echo $renderer->admin_authorised_user_selector($selectoroptions); //display the list of allowed users with their options (ip/timecreated / validuntil...) //check that the user has the service required capability (if needed) $allowedusers = $webservicemanager->get_ws_authorised_users($id); if (!empty($allowedusers)) { $renderer = $PAGE->get_renderer('core', 'webservice'); echo $OUTPUT->heading(get_string('serviceuserssettings', 'webservice'), 3, 'main'); echo $renderer->admin_authorised_user_list($allowedusers, $id); } echo $OUTPUT->footer();