. /** * Self enrolment plugin - support for user self unenrolment. * * @package enrol_self * @copyright 2010 Petr Skoda {@link http://skodak.org} * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require('../../config.php'); $enrolid = required_param('enrolid', PARAM_INT); $confirm = optional_param('confirm', 0, PARAM_BOOL); $instance = $DB->get_record('enrol', array('id'=>$enrolid, 'enrol'=>'apply'), '*', MUST_EXIST); $course = $DB->get_record('course', array('id'=>$instance->courseid), '*', MUST_EXIST); $context = context_course::instance($course->id, MUST_EXIST); require_login(); if (!is_enrolled($context)) { redirect(new moodle_url('/')); } require_login($course); $plugin = enrol_get_plugin('apply'); // Security defined inside following function. if (!$plugin->get_unenrolself_link($instance)) { redirect(new moodle_url('/course/view.php', array('id'=>$course->id))); } $PAGE->set_url('/enrol/apply/unenrolself.php', array('enrolid'=>$instance->id)); $PAGE->set_title($plugin->get_instance_name($instance)); if ($confirm and confirm_sesskey()) { $plugin->unenrol_user($instance, $USER->id); // Deprecated fixed by Shiro //add_to_log($course->id, 'course', 'unenrol', '../enrol/users.php?id='.$course->id, $course->id); //TODO: there should be userid somewhere! $context = context_course::instance($course->id); \core\event\user_enrolment_deleted::delete(array('context' => $context))->trigger(); redirect(new moodle_url('/index.php')); } echo $OUTPUT->header(); $yesurl = new moodle_url($PAGE->url, array('confirm'=>1, 'sesskey'=>sesskey())); $nourl = new moodle_url('/course/view.php', array('id'=>$course->id)); $message = get_string('unenrolselfconfirm', 'enrol_self', format_string($course->fullname)); //I leave the unenrolselfconfirm message because it fits perfectly echo $OUTPUT->confirm($message, $yesurl, $nourl); echo $OUTPUT->footer();