/** * Method to test function /local/elisprogram/lib/lib.php::pm_get_select_roles_for_contexts() * part of ELIS-8341 * @param array $testroles array of role 'objects' to create * @param array $passedcontexts array of contexts to pass to function under test * @param array $expectedresults associative array of selectable roles: roleshortname => rolename * @uses $DB * @dataProvider pm_get_select_roles_data_provider */ public function test_pm_get_select_roles($testroles, $passedcontexts, $expectedresults) { global $DB; $id2shortname = array(); // Create specified roles. foreach ($testroles as $testrole) { $roleid = create_role($testrole['name'], $testrole['shortname'], 'Default role description'); // Assign role capabilities. foreach ($testrole['caps'] as $cap => $perm) { assign_capability($cap, $perm, $roleid, 1, true); } // Create assignable contexts array & assign. $contexts = array(); foreach ($testrole['contexts'] as $contextlevel) { $contexts[$contextlevel] = $contextlevel; } set_role_contextlevels($roleid, $contexts); // Save roleid for later conversion. $id2shortname[$roleid] = $testrole['shortname']; } // Call test function. $results = array(); pm_get_select_roles_for_contexts($results, $passedcontexts); // Convert roleid to roleshortname to validate. foreach ($results as $id => $name) { if (isset($id2shortname[$id])) { $results[$id2shortname[$id]] = $name; } unset($results[$id]); } $this->assertEquals($expectedresults, $results); }
* GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * @package elisprogram_enrolrolesync * @author Remote-Learner.net Inc * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later * @copyright (C) 2008-2013 Remote-Learner.net Inc (http://www.remote-learner.net) * */ defined('MOODLE_INTERNAL') || die; require_once dirname(__FILE__) . '/../../../../config.php'; global $CFG; require_once $CFG->dirroot . '/local/elisprogram/lib/setup.php'; require_once elispm::lib('lib.php'); require_once elispm::file('plugins/enrolrolesync/lib.php'); if ($ADMIN->fulltree) { $options = array(0 => get_string('no_default_role', 'local_elisprogram')); pm_get_select_roles_for_contexts($options, array(CONTEXT_ELIS_CLASS)); //setting header $settings->add(new admin_setting_heading('elisprogram_enrolrolesync/settings', get_string('enrolment_role_sync_settings', 'elisprogram_enrolrolesync'), '')); //student role setting $setting = new admin_setting_configselect('elisprogram_enrolrolesync/student_role', get_string('sync_student_role_setting', 'elisprogram_enrolrolesync'), get_string('sync_student_role_help', 'elisprogram_enrolrolesync'), 0, $options); $setting->set_updatedcallback('enrolment_role_sync_updatedcallback'); $settings->add($setting); //instructor role setting $setting = new admin_setting_configselect('elisprogram_enrolrolesync/instructor_role', get_string('sync_instructor_role_setting', 'elisprogram_enrolrolesync'), get_string('sync_instructor_role_help', 'elisprogram_enrolrolesync'), 0, $options); $setting->set_updatedcallback('enrolment_role_sync_updatedcallback'); $settings->add($setting); }
$settings->add(new admin_setting_configselect('local_elisprogram/default_cluster_role_id', get_string('cluster_role_setting', 'local_elisprogram'), get_string('cluster_role_help', 'local_elisprogram'), 0, $allroles)); // Default Curriculum Role $allroles = array(0 => get_string('no_default_role', 'local_elisprogram')); pm_get_select_roles_for_contexts($allroles, array(CONTEXT_ELIS_PROGRAM)); $settings->add(new admin_setting_configselect('local_elisprogram/default_curriculum_role_id', get_string('curriculum_role_setting', 'local_elisprogram'), get_string('curriculum_role_help', 'local_elisprogram'), 0, $allroles)); // Default Course Role $allroles = array(0 => get_string('no_default_role', 'local_elisprogram')); pm_get_select_roles_for_contexts($allroles, array(CONTEXT_ELIS_COURSE)); $settings->add(new admin_setting_configselect('local_elisprogram/default_course_role_id', get_string('course_role_setting', 'local_elisprogram'), get_string('course_role_help', 'local_elisprogram'), 0, $allroles)); // Default Class Role $allroles = array(0 => get_string('no_default_role', 'local_elisprogram')); pm_get_select_roles_for_contexts($allroles, array(CONTEXT_ELIS_CLASS)); $settings->add(new admin_setting_configselect('local_elisprogram/default_class_role_id', get_string('class_role_setting', 'local_elisprogram'), get_string('class_role_help', 'local_elisprogram'), 0, $allroles)); // Default Track Role $allroles = array(0 => get_string('no_default_role', 'local_elisprogram')); pm_get_select_roles_for_contexts($allroles, array(CONTEXT_ELIS_TRACK)); $settings->add(new admin_setting_configselect('local_elisprogram/default_track_role_id', get_string('track_role_setting', 'local_elisprogram'), get_string('track_role_help', 'local_elisprogram'), 0, $allroles)); // ***Auto-create Settings $settings->add(new admin_setting_heading('auto_create_settings', get_string('auto_create_settings', 'local_elisprogram'), '')); // Moodle courses with unknown status treated as auto-created $settings->add(new admin_setting_configcheckbox('local_elisprogram/autocreated_unknown_is_yes', get_string('auto_create_setting', 'local_elisprogram'), get_string('auto_create_help', 'local_elisprogram'), 1)); //include settings for all subplugins include elispm::file('db/subplugins.php'); foreach ($subplugins as $subplugintype => $subplugintyperootdir) { //get the list of instances of the current subplugin type $directories = get_plugin_list($subplugintype); //iterate thorugh each instance of this subplugin type foreach ($directories as $directory) { $settings_path = $directory . '/settings.php'; if (file_exists($settings_path)) { //include the settings file