[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/admin/roles/ -> admins.php (source)

   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  /**
  18   * Select site administrators.
  19   *
  20   * @package    core_role
  21   * @copyright  2010 Petr Skoda {@link http://skodak.org}
  22   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  23   */
  24  
  25  require_once(__DIR__ . '/../../config.php');
  26  require_once($CFG->libdir.'/adminlib.php');
  27  
  28  $confirmadd = optional_param('confirmadd', 0, PARAM_INT);
  29  $confirmdel = optional_param('confirmdel', 0, PARAM_INT);
  30  
  31  $PAGE->set_url('/admin/roles/admins.php');
  32  
  33  admin_externalpage_setup('admins');
  34  if (!is_siteadmin()) {
  35      die;
  36  }
  37  
  38  $admisselector = new core_role_admins_existing_selector();
  39  $admisselector->set_extra_fields(array('username', 'email'));
  40  
  41  $potentialadmisselector = new core_role_admins_potential_selector();
  42  $potentialadmisselector->set_extra_fields(array('username', 'email'));
  43  
  44  if (optional_param('add', false, PARAM_BOOL) and confirm_sesskey()) {
  45      if ($userstoadd = $potentialadmisselector->get_selected_users()) {
  46          $user = reset($userstoadd);
  47          $username = fullname($user) . " ($user->username, $user->email)";
  48          echo $OUTPUT->header();
  49          $yesurl = new moodle_url('/admin/roles/admins.php', array('confirmadd'=>$user->id, 'sesskey'=>sesskey()));
  50          echo $OUTPUT->confirm(get_string('confirmaddadmin', 'core_role', $username), $yesurl, $PAGE->url);
  51          echo $OUTPUT->footer();
  52          die;
  53      }
  54  
  55  } else if (optional_param('remove', false, PARAM_BOOL) and confirm_sesskey()) {
  56      if ($userstoremove = $admisselector->get_selected_users()) {
  57          $user = reset($userstoremove);
  58          if ($USER->id == $user->id) {
  59              // Can not remove self.
  60          } else {
  61              $username = fullname($user) . " ($user->username, $user->email)";
  62              echo $OUTPUT->header();
  63              $yesurl = new moodle_url('/admin/roles/admins.php', array('confirmdel'=>$user->id, 'sesskey'=>sesskey()));
  64              echo $OUTPUT->confirm(get_string('confirmdeladmin', 'core_role', $username), $yesurl, $PAGE->url);
  65              echo $OUTPUT->footer();
  66              die;
  67          }
  68      }
  69  
  70  } else if (optional_param('main', false, PARAM_BOOL) and confirm_sesskey()) {
  71      if ($newmain = $admisselector->get_selected_users()) {
  72          $newmain = reset($newmain);
  73          $newmain = $newmain->id;
  74          $admins = array();
  75          foreach (explode(',', $CFG->siteadmins) as $admin) {
  76              $admin = (int)$admin;
  77              if ($admin) {
  78                  $admins[$admin] = $admin;
  79              }
  80          }
  81  
  82          if (isset($admins[$newmain])) {
  83              unset($admins[$newmain]);
  84              array_unshift($admins, $newmain);
  85              set_config('siteadmins', implode(',', $admins));
  86              redirect($PAGE->url);
  87          }
  88      }
  89  
  90  } else if ($confirmadd and confirm_sesskey()) {
  91      $admins = array();
  92      foreach (explode(',', $CFG->siteadmins) as $admin) {
  93          $admin = (int)$admin;
  94          if ($admin) {
  95              $admins[$admin] = $admin;
  96          }
  97      }
  98      $admins[$confirmadd] = $confirmadd;
  99      set_config('siteadmins', implode(',', $admins));
 100      redirect($PAGE->url);
 101  
 102  } else if ($confirmdel and confirm_sesskey() and $confirmdel != $USER->id) {
 103      $admins = array();
 104      foreach (explode(',', $CFG->siteadmins) as $admin) {
 105          $admin = (int)$admin;
 106          if ($admin) {
 107              $admins[$admin] = $admin;
 108          }
 109      }
 110      unset($admins[$confirmdel]);
 111      set_config('siteadmins', implode(',', $admins));
 112      redirect($PAGE->url);
 113  }
 114  
 115  // Print header.
 116  echo $OUTPUT->header();
 117  ?>
 118  
 119  <div id="addadmisform">
 120      <h3 class="main"><?php print_string('manageadmins', 'core_role'); ?></h3>
 121  
 122      <form id="assignform" method="post" action="<?php echo $PAGE->url ?>">
 123      <div>
 124      <input type="hidden" name="sesskey" value="<?php p(sesskey()); ?>" />
 125  
 126      <table class="generaltable generalbox groupmanagementtable boxaligncenter" summary="">
 127      <tr>
 128        <td id='existingcell'>
 129            <p>
 130              <label for="removeselect"><?php print_string('existingadmins', 'core_role'); ?></label>
 131            </p>
 132            <?php $admisselector->display(); ?>
 133            </td>
 134        <td id="buttonscell">
 135          <p class="arrow_button">
 136              <input name="add" id="add" type="submit" value="<?php echo $OUTPUT->larrow().'&nbsp;'.get_string('add'); ?>" title="<?php print_string('add'); ?>" /><br />
 137              <input name="remove" id="remove" type="submit" value="<?php echo get_string('remove').'&nbsp;'.$OUTPUT->rarrow(); ?>" title="<?php print_string('remove'); ?>" />
 138              <input name="main" id="main" type="submit" value="<?php echo get_string('mainadminset', 'core_role'); ?>" title="<?php print_string('mainadminset', 'core_role'); ?>" />
 139          </p>
 140        </td>
 141        <td id="potentialcell">
 142            <p>
 143              <label for="addselect"><?php print_string('users'); ?></label>
 144            </p>
 145            <?php $potentialadmisselector->display(); ?>
 146        </td>
 147      </tr>
 148      </table>
 149      </div>
 150      </form>
 151  </div>
 152  
 153  <?php
 154  
 155  echo $OUTPUT->footer();


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1