require_login($course); require_capability('moodle/course:enrolreview', $context); require_sesskey(); echo $OUTPUT->header(); // send headers $manager = new course_enrolment_manager($PAGE, $course); $outcome = new stdClass(); $outcome->success = true; $outcome->response = new stdClass(); $outcome->error = ''; $searchanywhere = get_user_preferences('userselector_searchanywhere', false); switch ($action) { case 'unenrol': $ue = $DB->get_record('user_enrolments', array('id' => required_param('ue', PARAM_INT)), '*', MUST_EXIST); list($instance, $plugin) = $manager->get_user_enrolment_components($ue); if (!$instance || !$plugin || !enrol_is_enabled($instance->enrol) || !$plugin->allow_unenrol_user($instance, $ue) || !has_capability("enrol/{$instance->enrol}:unenrol", $manager->get_context()) || !$manager->unenrol_user($ue)) { throw new enrol_ajax_exception('unenrolnotpermitted'); } break; case 'unassign': $role = required_param('role', PARAM_INT); $user = required_param('user', PARAM_INT); if (!has_capability('moodle/role:assign', $manager->get_context()) || !$manager->unassign_role_from_user($user, $role)) { throw new enrol_ajax_exception('unassignnotpermitted'); } break; case 'assign': $user = $DB->get_record('user', array('id' => required_param('user', PARAM_INT)), '*', MUST_EXIST); $roleid = required_param('roleid', PARAM_INT); if (!array_key_exists($roleid, $manager->get_assignable_roles())) { throw new enrol_ajax_exception('invalidrole');
$table = new course_enrolment_users_table($manager, $PAGE); // The URL of the enrolled users page for the course. $usersurl = new moodle_url('/enrol/users.php', array('id' => $course->id)); // The URl to return the user too after this screen. $returnurl = new moodle_url($usersurl, $manager->get_url_params() + $table->get_url_params()); // The URL of this page $url = new moodle_url('/enrol/globalclassroom/unenroluser.php', $returnurl->params()); $url->param('ue', $ueid); $PAGE->set_url($url); $PAGE->set_pagelayout('admin'); navigation_node::override_active_url($usersurl); list($instance, $plugin) = $manager->get_user_enrolment_components($ue); if (!$plugin->allow_unenrol($instance) || $instance->enrol != 'globalclassroom' || !$plugin instanceof enrol_globalclassroom_plugin) { print_error('erroreditenrolment', 'enrol'); } // If the unenrolment has been confirmed and the sesskey is valid unenrol the user. if ($confirm && confirm_sesskey() && $manager->unenrol_user($ue)) { redirect($returnurl); } $yesurl = new moodle_url($PAGE->url, array('confirm' => 1, 'sesskey' => sesskey())); $message = get_string('unenroluser', 'enrol_globalclassroom', array('user' => fullname($user, true), 'course' => format_string($course->fullname))); $fullname = fullname($user); $title = get_string('unenrol', 'enrol_globalclassroom'); $PAGE->set_title($title); $PAGE->set_heading($title); $PAGE->navbar->add($title); $PAGE->navbar->add($fullname); echo $OUTPUT->header(); echo $OUTPUT->heading($fullname); echo $OUTPUT->confirm($message, $yesurl, $returnurl); echo $OUTPUT->footer();
// Check if the page is confirmed (and sesskey is correct) $confirm = optional_param('confirm', false, PARAM_BOOL) && confirm_sesskey(); $actiontaken = false; $pagetitle = ''; $pageheading = ''; $mform = null; $pagecontent = null; switch ($action) { /** * Unenrols a user from this course (including removing all of their grades) */ case 'unenrol': $ue = $DB->get_record('user_enrolments', array('id' => required_param('ue', PARAM_INT)), '*', MUST_EXIST); list($instance, $plugin) = $manager->get_user_enrolment_components($ue); if ($instance && $plugin && $plugin->allow_unenrol($instance) && has_capability("enrol/{$instance->enrol}:unenrol", $manager->get_context())) { if ($confirm && $manager->unenrol_user($ue)) { redirect($PAGE->url); } else { $user = $DB->get_record('user', array('id' => $ue->userid), '*', MUST_EXIST); $yesurl = new moodle_url($PAGE->url, array('action' => 'unenrol', 'ue' => $ue->id, 'confirm' => 1, 'sesskey' => sesskey())); $message = get_string('unenrolconfirm', 'enrol', array('user' => fullname($user, true), 'course' => format_string($course->fullname))); $pagetitle = get_string('unenrol', 'enrol'); $pagecontent = $OUTPUT->confirm($message, $yesurl, $PAGE->url); } $actiontaken = true; } break; /** * Removes a role from the user with this course */ /**
/** * Unenrol a user from a courses * @param object $user * @param array $courseids * @param int $companyid * @return void */ public static function unenrol($user, $courseids, $companyid = null) { global $DB, $PAGE; foreach ($courseids as $courseid) { if (!$DB->get_record('iomad_courses', array('courseid' => $courseid, 'shared' => 0))) { $shared = true; } else { $shared = false; } $course = $DB->get_record('course', array('id' => $courseid)); $courseenrolmentmanager = new course_enrolment_manager($PAGE, $course); $ues = $courseenrolmentmanager->get_user_enrolments($user->id); foreach ($ues as $ue) { if ($ue->enrolmentinstance->courseid == $courseid) { $courseenrolmentmanager->unenrol_user($ue); if ($shared) { if (!empty($companyid)) { company::remove_user_from_shared_course($courseid, $user->id, $companyid); } } } } } }
private function unenroll_all($id) { global $DB, $PAGE; // Unenroll everybody from given course. // Get list of enrollments. $course = $DB->get_record('course', array('id' => $id)); $courseenrolment = new course_enrolment_manager($PAGE, $course); $userlist = $courseenrolment->get_users('', 'ASC', 0, 0); foreach ($userlist as $user) { $ues = $courseenrolment->get_user_enrolments($user->id); foreach ($ues as $ue) { $courseenrolment->unenrol_user($ue); } } }