. /** * user signup page. * * @package core * @subpackage auth * @copyright 1999 onwards Martin Dougiamas http://dougiamas.com * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require('../config.php'); require_once($CFG->dirroot . '/user/editlib.php'); // Try to prevent searching for sites that allow sign-up. if (!isset($CFG->additionalhtmlhead)) { $CFG->additionalhtmlhead = ''; } $CFG->additionalhtmlhead .= ''; if (empty($CFG->registerauth)) { print_error('notlocalisederrormessage', 'error', '', 'Sorry, you may not use this page.'); } $authplugin = get_auth_plugin($CFG->registerauth); if (!$authplugin->can_signup()) { print_error('notlocalisederrormessage', 'error', '', 'Sorry, you may not use this page.'); } //HTTPS is required in this page when $CFG->loginhttps enabled $PAGE->https_required(); $PAGE->set_url('/login/signup.php'); $PAGE->set_context(context_system::instance()); // Override wanted URL, we do not want to end up here again if user clicks "Login". $SESSION->wantsurl = $CFG->wwwroot . '/'; if (isloggedin() and !isguestuser()) { // Prevent signing up when already logged in. echo $OUTPUT->header(); echo $OUTPUT->box_start(); $logout = new single_button(new moodle_url($CFG->httpswwwroot . '/login/logout.php', array('sesskey' => sesskey(), 'loginpage' => 1)), get_string('logout'), 'post'); $continue = new single_button(new moodle_url('/'), get_string('cancel'), 'get'); echo $OUTPUT->confirm(get_string('cannotsignup', 'error', fullname($USER)), $logout, $continue); echo $OUTPUT->box_end(); echo $OUTPUT->footer(); exit; } $mform_signup = $authplugin->signup_form(); if ($mform_signup->is_cancelled()) { redirect(get_login_url()); } else if ($user = $mform_signup->get_data()) { $user->confirmed = 0; $user->lang = current_language(); $user->firstaccess = 0; $user->timecreated = time(); $user->mnethostid = $CFG->mnet_localhost_id; $user->secret = random_string(15); $user->auth = $CFG->registerauth; // Initialize alternate name fields to empty strings. $namefields = array_diff(get_all_user_name_fields(), useredit_get_required_name_fields()); foreach ($namefields as $namefield) { $user->$namefield = ''; } $authplugin->user_signup($user, true); // prints notice and link to login/index.php exit; //never reached } // make sure we really are on the https page when https login required $PAGE->verify_https_required(); $newaccount = get_string('newaccount'); $login = get_string('login'); $PAGE->navbar->add($login); $PAGE->navbar->add($newaccount); $PAGE->set_title($newaccount); $PAGE->set_heading($SITE->fullname); echo $OUTPUT->header(); echo $OUTPUT->heading($newaccount); $mform_signup->display(); echo $OUTPUT->footer();