. /** * User self unenrolment action and user secrity query for the enrol_apply plugin. * The presence of this file plus the capability 'apply:unenrolself' * results in a self unenrolment link in the course administration * navigation ('Unenrol me from ...'). * * @package enrol_apply * @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); 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)); // I leave the unenrolselfconfirm message because it fits perfectly. $message = get_string('unenrolselfconfirm', 'enrol_self', format_string($course->fullname)); echo $OUTPUT->confirm($message, $yesurl, $nourl); echo $OUTPUT->footer();