/**
  * Test get_enrolled_users
  */
 public function test_get_enrolled_users()
 {
     global $USER;
     $this->resetAfterTest(true);
     $course = self::getDataGenerator()->create_course();
     $user1 = self::getDataGenerator()->create_user();
     $user2 = self::getDataGenerator()->create_user();
     $user3 = self::getDataGenerator()->create_user();
     $this->setUser($user3);
     // Set the required capabilities by the external function.
     $context = context_course::instance($course->id);
     $roleid = $this->assignUserCapability('moodle/course:viewparticipants', $context->id);
     $this->assignUserCapability('moodle/user:viewdetails', $context->id, $roleid);
     // Enrol the users in the course.
     $this->getDataGenerator()->enrol_user($user1->id, $course->id, $roleid, 'manual');
     $this->getDataGenerator()->enrol_user($user2->id, $course->id, $roleid, 'manual');
     $this->getDataGenerator()->enrol_user($user3->id, $course->id, $roleid, 'manual');
     // Call the external function.
     $enrolledusers = core_enrol_external::get_enrolled_users($course->id);
     // We need to execute the return values cleaning process to simulate the web service server.
     $enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
     // Check the result set.
     $this->assertEquals(3, count($enrolledusers));
     $this->assertArrayHasKey('email', $enrolledusers[0]);
     // Call the function with some parameters set.
     $enrolledusers = core_enrol_external::get_enrolled_users($course->id, array(array('name' => 'limitfrom', 'value' => 2), 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.
     $enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
     // Check the result set, we should only get the 3rd result, which is $user3.
     $this->assertCount(1, $enrolledusers);
     $this->assertEquals($user3->id, $enrolledusers[0]['id']);
     $this->assertArrayHasKey('id', $enrolledusers[0]);
     $this->assertArrayNotHasKey('email', $enrolledusers[0]);
     // Call without required capability.
     $this->unassignUserCapability('moodle/course:viewparticipants', $context->id, $roleid);
     $this->setExpectedException('moodle_exception');
     $categories = core_enrol_external::get_enrolled_users($course->id);
 }
Exemple #2
0
 /**
  * Test get_enrolled_users
  */
 public function test_get_enrolled_users()
 {
     global $USER;
     $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('moodle/course:viewparticipants', $context->id);
     $this->assignUserCapability('moodle/user:viewdetails', $context->id, $roleid);
     // Enrol the users in the course.
     // We use the manual plugin.
     $enrol = enrol_get_plugin('manual');
     $enrolinstances = enrol_get_instances($course->id, true);
     foreach ($enrolinstances as $courseenrolinstance) {
         if ($courseenrolinstance->enrol == "manual") {
             $instance = $courseenrolinstance;
             break;
         }
     }
     $enrol->enrol_user($instance, $user1->id, $roleid);
     $enrol->enrol_user($instance, $user2->id, $roleid);
     $enrol->enrol_user($instance, $USER->id, $roleid);
     // Call the external function.
     $enrolledusers = core_enrol_external::get_enrolled_users($course->id);
     // We need to execute the return values cleaning process to simulate the web service server.
     $enrolledusers = external_api::clean_returnvalue(core_enrol_external::get_enrolled_users_returns(), $enrolledusers);
     // Check we retrieve the good total number of enrolled users.
     $this->assertEquals(3, count($enrolledusers));
     // Call without required capability.
     $this->unassignUserCapability('moodle/course:viewparticipants', $context->id, $roleid);
     $this->setExpectedException('moodle_exception');
     $categories = core_enrol_external::get_enrolled_users($course->id);
 }
Exemple #3
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);
 }
Exemple #4
0
 /**
  * Get course participants details
  *
  * @param int $courseid  course id
  * @param array $options options {
  *                                'name' => option name
  *                                'value' => option value
  *                               }
  * @return array An array of users
  * @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()
  */
 public static function get_users_by_courseid($courseid, $options)
 {
     global $CFG;
     require_once $CFG->dirroot . '/enrol/externallib.php';
     return core_enrol_external::get_enrolled_users($courseid, $options);
 }
 /**
  * Test get_enrolled_users from core_enrol_external with capability to
  * viewparticipants removed.
  */
 public function test_get_enrolled_users_without_capability()
 {
     $capability = 'moodle/course:viewparticipants';
     $data = $this->get_enrolled_users_setup($capability);
     // Call without required capability.
     $this->unassignUserCapability($capability, $data->context->id, $data->roleid);
     $this->setExpectedException('moodle_exception');
     $categories = core_enrol_external::get_enrolled_users($data->course->id);
 }