. /** * Entry point for external people to access a studyplan view with an invitation * @package local_treestudyplan * @copyright 2023 P.M. Kuipers * @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once("../../config.php"); /* Since this page is externally accessed and validated in a different way, no login is needed. In fact, we need to override the behaviour of require_login to force "guest access" here, even if the configuration says differently. Note that we do not use set_config(...) here, because we do not want to change the settings in the database. */ $autologin = $CFG->autologinguests; // Store current guest autologin configuration value. $CFG->autologinguests = 1; // Override guest autologin configuration value. require_login(null, true); // Trigger require_login to make sure we have guest access. $CFG->autologinguests = $autologin; // Restore old guest autologin configuration value. unset($autologin); $systemcontext = context_system::instance(); $PAGE->set_pagelayout('base'); $PAGE->set_context($systemcontext); // See if we can get a valid user for this invited. $invitekey = optional_param('key', '', PARAM_ALPHANUM); // Module name. $PAGE->set_url("/local/treestudyplan/invited.php", ['key' => $invitekey]); $invite = $DB->get_record_select("local_treestudyplan_invit", $DB->sql_compare_text("invitekey"). " = " . $DB->sql_compare_text(":invitekey"), ['invitekey' => $invitekey]); if (!get_config("local_treestudyplan", "enableplansharing")) { $PAGE->set_title(get_string('accessdenied', 'admin')); $PAGE->set_heading(get_string('accessdenied', 'admin')); print $OUTPUT->header(); // Render page for skill level 0 (global). print "