Differences Between: [Versions 310 and 402] [Versions 311 and 402] [Versions 39 and 402] [Versions 400 and 402]
1 <?php 2 3 // This file is part of Moodle - http://moodle.org/ 4 // 5 // Moodle is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // Moodle is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 17 18 /** 19 * Confirm self registered user. 20 * 21 * @package core 22 * @subpackage auth 23 * @copyright 1999 Martin Dougiamas http://dougiamas.com 24 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 25 */ 26 27 require(__DIR__ . '/../config.php'); 28 require (__DIR__ . '/lib.php'); 29 require_once($CFG->libdir . '/authlib.php'); 30 31 $data = optional_param('data', '', PARAM_RAW); // Formatted as: secret/username 32 33 $p = optional_param('p', '', PARAM_ALPHANUM); // Old parameter: secret 34 $s = optional_param('s', '', PARAM_RAW); // Old parameter: username 35 $redirect = optional_param('redirect', '', PARAM_LOCALURL); // Where to redirect the browser once the user has been confirmed. 36 37 $PAGE->set_url('/login/confirm.php'); 38 $PAGE->set_context(context_system::instance()); 39 40 if (!$authplugin = signup_get_user_confirmation_authplugin()) { 41 throw new moodle_exception('confirmationnotenabled'); 42 } 43 44 if (!empty($data) || (!empty($p) && !empty($s))) { 45 46 if (!empty($data)) { 47 $dataelements = explode('/', $data, 2); // Stop after 1st slash. Rest is username. MDL-7647 48 $usersecret = $dataelements[0]; 49 $username = $dataelements[1]; 50 } else { 51 $usersecret = $p; 52 $username = $s; 53 } 54 55 $confirmed = $authplugin->user_confirm($username, $usersecret); 56 57 if ($confirmed == AUTH_CONFIRM_ALREADY) { 58 $user = get_complete_user_data('username', $username); 59 $PAGE->navbar->add(get_string("alreadyconfirmed")); 60 $PAGE->set_title(get_string("alreadyconfirmed")); 61 $PAGE->set_heading($COURSE->fullname); 62 echo $OUTPUT->header(); 63 echo $OUTPUT->box_start('generalbox centerpara boxwidthnormal boxaligncenter'); 64 echo "<p>".get_string("alreadyconfirmed")."</p>\n"; 65 echo $OUTPUT->single_button(core_login_get_return_url(), get_string('courses')); 66 echo $OUTPUT->box_end(); 67 echo $OUTPUT->footer(); 68 exit; 69 70 } else if ($confirmed == AUTH_CONFIRM_OK) { 71 72 // The user has confirmed successfully, let's log them in 73 74 if (!$user = get_complete_user_data('username', $username)) { 75 throw new \moodle_exception('cannotfinduser', '', '', s($username)); 76 } 77 78 if (!$user->suspended) { 79 complete_user_login($user); 80 81 \core\session\manager::apply_concurrent_login_limit($user->id, session_id()); 82 83 // Check where to go, $redirect has a higher preference. 84 if (!empty($redirect)) { 85 if (!empty($SESSION->wantsurl)) { 86 unset($SESSION->wantsurl); 87 } 88 redirect($redirect); 89 } 90 } 91 92 $PAGE->navbar->add(get_string("confirmed")); 93 $PAGE->set_title(get_string("confirmed")); 94 $PAGE->set_heading($COURSE->fullname); 95 echo $OUTPUT->header(); 96 echo $OUTPUT->box_start('generalbox centerpara boxwidthnormal boxaligncenter'); 97 echo "<h3>".get_string("thanks").", ". fullname($USER) . "</h3>\n"; 98 echo "<p>".get_string("confirmed")."</p>\n"; 99 echo $OUTPUT->single_button(core_login_get_return_url(), get_string('continue')); 100 echo $OUTPUT->box_end(); 101 echo $OUTPUT->footer(); 102 exit; 103 } else { 104 throw new \moodle_exception('invalidconfirmdata'); 105 } 106 } else { 107 throw new \moodle_exception("errorwhenconfirming"); 108 } 109 110 redirect("$CFG->wwwroot/");
title
Description
Body
title
Description
Body
title
Description
Body
title
Body