/** * Test get_enrolled_users */ public function test_enrol_users() { global $USER, $CFG; $this->resetAfterTest(true); $course = self::getDataGenerator()->create_course(); $user1 = self::getDataGenerator()->create_user(); $user2 = self::getDataGenerator()->create_user(); // Set the required capabilities by the external function. $context = context_course::instance($course->id); $roleid = $this->assignUserCapability('enrol/manual:enrol', $context->id); $this->assignUserCapability('moodle/course:view', $context->id, $roleid); // Add manager role to $USER. // So $USER is allowed to assign 'manager', 'editingteacher', 'teacher' and 'student'. role_assign(1, $USER->id, context_system::instance()->id); // Call the external function. enrol_manual_external::enrol_users(array(array('roleid' => 3, 'userid' => $user1->id, 'courseid' => $course->id), array('roleid' => 3, 'userid' => $user2->id, 'courseid' => $course->id))); // Check we retrieve the good total number of enrolled users. require_once $CFG->dirroot . '/enrol/externallib.php'; $enrolledusers = core_enrol_external::get_enrolled_users($course->id); $this->assertEquals(2, count($enrolledusers)); // Call without required capability. $this->unassignUserCapability('enrol/manual:enrol', $context->id, $roleid); $this->setExpectedException('moodle_exception'); $categories = enrol_manual_external::enrol_users($course->id); }
/** * Returns description of method result value * * @return external_description * @since Moodle 2.1 * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. * @todo MDL-31194 This will be deleted in Moodle 2.5. * @see core_enrol_external::get_enrolled_users_returns() */ public static function get_users_by_courseid_returns() { global $CFG; require_once $CFG->dirroot . '/enrol/externallib.php'; return core_enrol_external::get_enrolled_users_returns(); }
/** * Test get_enrolled_users_with_capability */ public function test_get_enrolled_users_with_capability_with_parameters() { $capability = 'moodle/course:viewparticipants'; $data = $this->get_enrolled_users_with_capability_setup($capability); $result = core_enrol_external::get_enrolled_users_with_capability(array('coursecapabilities' => array('courseid' => $data->course->id, 'capabilities' => array($capability))), array(array('name' => 'limitfrom', 'value' => 1), array('name' => 'limitnumber', 'value' => 1), array('name' => 'userfields', 'value' => 'id'))); // We need to execute the return values cleaning process to simulate the web service server. $result = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result); // Check an array containing the expected user for the course capability is returned. $expecteduserlist = $result[0]['users']; $expecteduser = reset($expecteduserlist); $this->assertEquals(1, count($expecteduserlist)); $this->assertEquals($data->student1->id, $expecteduser['id']); }
/** * Returns description of method result value * * @return external_description * @since Moodle 2.1 * @deprecated Moodle 2.2 MDL-29106 - Please do not call this function any more. * @todo MDL-31194 This will be deleted in Moodle 2.5. * @see core_enrol_external::get_users_courses_returns() */ public static function get_users_courses_returns() { return core_enrol_external::get_users_courses_returns(); }
/** * Test get_enrolled_users_with_capability */ public function test_get_enrolled_users_with_capability() { global $DB, $USER; $this->resetAfterTest(true); $coursedata['idnumber'] = 'idnumbercourse1'; $coursedata['fullname'] = 'Lightwork Course 1'; $coursedata['summary'] = 'Lightwork Course 1 description'; $coursedata['summaryformat'] = FORMAT_MOODLE; $course1 = self::getDataGenerator()->create_course($coursedata); // Create a manual enrolment record. $manual_enrol_data['enrol'] = 'manual'; $manual_enrol_data['status'] = 0; $manual_enrol_data['courseid'] = $course1->id; $enrolid = $DB->insert_record('enrol', $manual_enrol_data); // Create the user and give them capabilities in the course context. $context = context_course::instance($course1->id); $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $context->id, 3); // Create a student. $student1 = self::getDataGenerator()->create_user(); // Enrol both the user and the student in the course. $user_enrolment_data['status'] = 0; $user_enrolment_data['enrolid'] = $enrolid; $user_enrolment_data['userid'] = $USER->id; $DB->insert_record('user_enrolments', $user_enrolment_data); $user_enrolment_data['status'] = 0; $user_enrolment_data['enrolid'] = $enrolid; $user_enrolment_data['userid'] = $student1->id; $DB->insert_record('user_enrolments', $user_enrolment_data); $params = array("coursecapabilities" => array('courseid' => $course1->id, 'capabilities' => array('moodle/course:viewparticipants'))); $options = array(); $result = core_enrol_external::get_enrolled_users_with_capability($params, $options); // We need to execute the return values cleaning process to simulate the web service server. $result = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_with_capability_returns(), $result); // Check an array containing the expected user for the course capability is returned. $expecteduserlist = $result[0]; $this->assertEquals($course1->id, $expecteduserlist['courseid']); $this->assertEquals('moodle/course:viewparticipants', $expecteduserlist['capability']); $this->assertEquals(1, count($expecteduserlist['users'])); }
/** * Test get_course_enrolment_methods */ public function test_get_course_enrolment_methods() { global $DB; $this->resetAfterTest(true); // Get enrolment plugins. $selfplugin = enrol_get_plugin('self'); $this->assertNotEmpty($selfplugin); $manualplugin = enrol_get_plugin('manual'); $this->assertNotEmpty($manualplugin); $studentrole = $DB->get_record('role', array('shortname' => 'student')); $this->assertNotEmpty($studentrole); $course1 = self::getDataGenerator()->create_course(); $course2 = self::getDataGenerator()->create_course(); // Add enrolment methods for course. $instanceid1 = $selfplugin->add_instance($course1, array('status' => ENROL_INSTANCE_ENABLED, 'name' => 'Test instance 1', 'customint6' => 1, 'roleid' => $studentrole->id)); $instanceid2 = $selfplugin->add_instance($course1, array('status' => ENROL_INSTANCE_DISABLED, 'name' => 'Test instance 2', 'roleid' => $studentrole->id)); $instanceid3 = $manualplugin->add_instance($course1, array('status' => ENROL_INSTANCE_ENABLED, 'name' => 'Test instance 3')); $enrolmentmethods = $DB->get_records('enrol', array('courseid' => $course1->id, 'status' => ENROL_INSTANCE_ENABLED)); $this->assertCount(2, $enrolmentmethods); // Check if information is returned. $enrolmentmethods = core_enrol_external::get_course_enrolment_methods($course1->id); // Enrolment information is currently returned by self enrolment plugin, so count == 1. // This should be changed as we implement get_enrol_info() for other enrolment plugins. $this->assertCount(1, $enrolmentmethods); $enrolmentmethod = $enrolmentmethods[0]; $this->assertEquals($course1->id, $enrolmentmethod['courseid']); $this->assertEquals('self', $enrolmentmethod['type']); $this->assertTrue($enrolmentmethod['status']); $this->assertFalse(isset($enrolmentmethod['wsfunction'])); $instanceid4 = $selfplugin->add_instance($course2, array('status' => ENROL_INSTANCE_ENABLED, 'name' => 'Test instance 4', 'roleid' => $studentrole->id, 'customint6' => 1, 'password' => 'test')); $enrolmentmethods = core_enrol_external::get_course_enrolment_methods($course2->id); $this->assertCount(1, $enrolmentmethods); $enrolmentmethod = $enrolmentmethods[0]; $this->assertEquals($course2->id, $enrolmentmethod['courseid']); $this->assertEquals('self', $enrolmentmethod['type']); $this->assertTrue($enrolmentmethod['status']); $this->assertEquals('enrol_self_get_instance_info', $enrolmentmethod['wsfunction']); }
public static function getUserCohortsCourses($userid) { global $DB; // $uc = CompleteUserData::getUserCohorts($userid); // $user_courses = array(); // foreach($uc as $ucc){ // $user_courses[] = $ucc['courses']; // } // $all_courses = call_user_func_array('array_merge', $user_courses); // $user_cohort_courses = array_unique($all_courses); // $activecourses = array_values($user_cohort_courses); //echo "<pre>"; print_r($activecourses); $activecourses = core_enrol_external::get_users_courses_subcat_offline($userid, self::COURSE_CATEGORY_ID); $activeresources = core_enrol_external::get_users_courses_subcat_offline($userid, self::RESOURCE_CATEGORY_ID); $ActiveCourses = array(); foreach ($activecourses as $i => $ac) { $courseid = $ac['id']; $mod_detail_sql = 'SELECT id FROM mdl_course_modules WHERE course = ' . $courseid . " AND visible = 1 "; $course_modules = $DB->get_records_sql($mod_detail_sql); $c_m_details = array(); if (!empty($course_modules)) { foreach ($course_modules as $cm) { $c_m_details[] = $cm->id; } } $activecourse_mod = array_values($c_m_details); $ActiveCourses[] = array("id" => $courseid, "modules" => $activecourse_mod); } foreach ($activeresources as $i => $ar) { $courseid = $ar['id']; $mod_detail_sql = 'SELECT id FROM mdl_course_modules WHERE course = ' . $courseid . " AND visible = 1 "; $course_modules = $DB->get_records_sql($mod_detail_sql); $c_m_details = array(); if (!empty($course_modules)) { foreach ($course_modules as $cm) { $c_m_details[] = $cm->id; } } $activeresource_mod = array_values($c_m_details); $ActiveCourses[] = array("id" => $courseid, "modules" => $activeresource_mod); } return array_values($ActiveCourses); }
/** * Test get_users_courses */ public function test_get_users_courses() { global $USER; $this->resetAfterTest(true); $course1 = self::getDataGenerator()->create_course(); $course2 = self::getDataGenerator()->create_course(); $courses = array($course1, $course2); // Enrol $USER in the courses. // We use the manual plugin. $enrol = enrol_get_plugin('manual'); $roleid = null; foreach ($courses as $course) { $context = context_course::instance($course->id); $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $context->id, $roleid); $enrolinstances = enrol_get_instances($course->id, true); foreach ($enrolinstances as $courseenrolinstance) { if ($courseenrolinstance->enrol == "manual") { $instance = $courseenrolinstance; break; } } $enrol->enrol_user($instance, $USER->id, $roleid); } // Call the external function. $enrolledincourses = core_enrol_external::get_users_courses($USER->id); // Check we retrieve the good total number of enrolled users. $this->assertEquals(2, count($enrolledincourses)); }