|
Moodle
2.2.1
http://www.collinsharper.com
|
00001 <?php 00002 00003 // This file is part of Moodle - http://moodle.org/ 00004 // 00005 // Moodle is free software: you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation, either version 3 of the License, or 00008 // (at your option) any later version. 00009 // 00010 // Moodle is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 00017 00025 require_once('../../config.php'); 00026 require_once($CFG->libdir . '/adminlib.php'); 00027 require_once($CFG->dirroot . '/' . $CFG->admin . '/webservice/lib.php'); 00028 require_once($CFG->dirroot . '/webservice/lib.php'); 00029 00030 $id = required_param('id', PARAM_INT); 00031 00032 admin_externalpage_setup('externalserviceusers'); 00033 00034 //define nav bar 00035 $PAGE->set_url('/' . $CFG->admin . '/webservice/service_users.php', array('id' => $id)); 00036 $node = $PAGE->settingsnav->find('externalservices', navigation_node::TYPE_SETTING); 00037 if ($node) { 00038 $node->make_active(); 00039 } 00040 $PAGE->navbar->add(get_string('serviceusers', 'webservice'), 00041 new moodle_url('/' . $CFG->admin . '/webservice/service_users.php', array('id' => $id))); 00042 00043 $webservicemanager = new webservice(); 00044 00046 $potentialuserselector = new service_user_selector('addselect', 00047 array('serviceid' => $id, 'displayallowedusers' => 0)); 00048 $alloweduserselector = new service_user_selector('removeselect', 00049 array('serviceid' => $id, 'displayallowedusers' => 1)); 00050 00052 if (optional_param('add', false, PARAM_BOOL) && confirm_sesskey()) { 00053 $userstoassign = $potentialuserselector->get_selected_users(); 00054 if (!empty($userstoassign)) { 00055 foreach ($userstoassign as $adduser) { 00056 $serviceuser = new stdClass(); 00057 $serviceuser->externalserviceid = $id; 00058 $serviceuser->userid = $adduser->id; 00059 $webservicemanager->add_ws_authorised_user($serviceuser); 00060 add_to_log(SITEID, 'core', 'assign', $CFG->admin . '/webservice/service_users.php?id=' 00061 . $id, 'add', '', $adduser->id); 00062 } 00063 $potentialuserselector->invalidate_selected_users(); 00064 $alloweduserselector->invalidate_selected_users(); 00065 } 00066 } 00067 00069 if (optional_param('remove', false, PARAM_BOOL) && confirm_sesskey()) { 00070 $userstoremove = $alloweduserselector->get_selected_users(); 00071 if (!empty($userstoremove)) { 00072 foreach ($userstoremove as $removeuser) { 00073 $webservicemanager->remove_ws_authorised_user($removeuser, $id); 00074 add_to_log(SITEID, 'core', 'assign', $CFG->admin . '/webservice/service_users.php?id=' 00075 . $id, 'remove', '', $removeuser->id); 00076 } 00077 $potentialuserselector->invalidate_selected_users(); 00078 $alloweduserselector->invalidate_selected_users(); 00079 } 00080 } 00083 $renderer = $PAGE->get_renderer('core', 'webservice'); 00084 00085 echo $OUTPUT->header(); 00086 00087 echo $OUTPUT->heading(get_string('selectauthorisedusers', 'webservice'), 3, 'main'); 00088 $selectoroptions = new stdClass(); 00089 $selectoroptions->serviceid = $id; 00090 $selectoroptions->alloweduserselector = $alloweduserselector; 00091 $selectoroptions->potentialuserselector = $potentialuserselector; 00092 echo $renderer->admin_authorised_user_selector($selectoroptions); 00093 00095 $allowedusers = $webservicemanager->get_ws_authorised_users($id); 00096 $usersmissingcaps = $webservicemanager->get_missing_capabilities_by_users($allowedusers, $id); 00097 00098 //add the missing capabilities to the allowed users object to be displayed by renderer 00099 foreach ($allowedusers as &$alloweduser) { 00100 if (!is_siteadmin($alloweduser->id) and key_exists($alloweduser->id, $usersmissingcaps)) { 00101 $alloweduser->missingcapabilities = implode(', ', $usersmissingcaps[$alloweduser->id]); 00102 } 00103 } 00104 00106 //check that the user has the service required capability (if needed) 00107 if (!empty($allowedusers)) { 00108 $renderer = $PAGE->get_renderer('core', 'webservice'); 00109 echo $OUTPUT->heading(get_string('serviceuserssettings', 'webservice'), 3, 'main'); 00110 echo $renderer->admin_authorised_user_list($allowedusers, $id); 00111 } 00112 00113 echo $OUTPUT->footer();