[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/login/ -> confirm.php (source)

   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('../config.php');
  28  
  29  $data = optional_param('data', '', PARAM_RAW);  // Formatted as:  secret/username
  30  
  31  $p = optional_param('p', '', PARAM_ALPHANUM);   // Old parameter:  secret
  32  $s = optional_param('s', '', PARAM_RAW);        // Old parameter:  username
  33  
  34  $PAGE->set_url('/login/confirm.php');
  35  $PAGE->set_context(context_system::instance());
  36  
  37  if (empty($CFG->registerauth)) {
  38      print_error('cannotusepage2');
  39  }
  40  $authplugin = get_auth_plugin($CFG->registerauth);
  41  
  42  if (!$authplugin->can_confirm()) {
  43      print_error('cannotusepage2');
  44  }
  45  
  46  if (!empty($data) || (!empty($p) && !empty($s))) {
  47  
  48      if (!empty($data)) {
  49          $dataelements = explode('/', $data, 2); // Stop after 1st slash. Rest is username. MDL-7647
  50          $usersecret = $dataelements[0];
  51          $username   = $dataelements[1];
  52      } else {
  53          $usersecret = $p;
  54          $username   = $s;
  55      }
  56  
  57      $confirmed = $authplugin->user_confirm($username, $usersecret);
  58  
  59      if ($confirmed == AUTH_CONFIRM_ALREADY) {
  60          $user = get_complete_user_data('username', $username);
  61          $PAGE->navbar->add(get_string("alreadyconfirmed"));
  62          $PAGE->set_title(get_string("alreadyconfirmed"));
  63          $PAGE->set_heading($COURSE->fullname);
  64          echo $OUTPUT->header();
  65          echo $OUTPUT->box_start('generalbox centerpara boxwidthnormal boxaligncenter');
  66          echo "<h3>".get_string("thanks").", ". fullname($user) . "</h3>\n";
  67          echo "<p>".get_string("alreadyconfirmed")."</p>\n";
  68          echo $OUTPUT->single_button("$CFG->wwwroot/course/", get_string('courses'));
  69          echo $OUTPUT->box_end();
  70          echo $OUTPUT->footer();
  71          exit;
  72  
  73      } else if ($confirmed == AUTH_CONFIRM_OK) {
  74  
  75          // The user has confirmed successfully, let's log them in
  76  
  77          if (!$user = get_complete_user_data('username', $username)) {
  78              print_error('cannotfinduser', '', '', s($username));
  79          }
  80  
  81          complete_user_login($user);
  82  
  83          if ( ! empty($SESSION->wantsurl) ) {   // Send them where they were going
  84              $goto = $SESSION->wantsurl;
  85              unset($SESSION->wantsurl);
  86              redirect($goto);
  87          }
  88  
  89          $PAGE->navbar->add(get_string("confirmed"));
  90          $PAGE->set_title(get_string("confirmed"));
  91          $PAGE->set_heading($COURSE->fullname);
  92          echo $OUTPUT->header();
  93          echo $OUTPUT->box_start('generalbox centerpara boxwidthnormal boxaligncenter');
  94          echo "<h3>".get_string("thanks").", ". fullname($USER) . "</h3>\n";
  95          echo "<p>".get_string("confirmed")."</p>\n";
  96          echo $OUTPUT->single_button("$CFG->wwwroot/course/", get_string('courses'));
  97          echo $OUTPUT->box_end();
  98          echo $OUTPUT->footer();
  99          exit;
 100      } else {
 101          print_error('invalidconfirmdata');
 102      }
 103  } else {
 104      print_error("errorwhenconfirming");
 105  }
 106  
 107  redirect("$CFG->wwwroot/");


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1