示例#1
0
 /**
  * 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);
 }
示例#2
0
 /**
  * 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']);
 }
示例#4
0
 /**
  * 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();
 }
示例#5
0
 /**
  * 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);
 }
示例#8
0
 /**
  * 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));
 }