[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/admin/ -> auth_config.php (source)

   1  <?php
   2  /**
   3   * Edit configuration for an individual auth plugin
   4   */
   5  
   6  require_once '../config.php';
   7  require_once $CFG->libdir.'/adminlib.php';
   8  
   9  $auth = required_param('auth', PARAM_PLUGIN);
  10  $PAGE->set_pagetype('admin-auth-' . $auth);
  11  
  12  admin_externalpage_setup('authsetting'.$auth);
  13  
  14  $authplugin = get_auth_plugin($auth);
  15  $err = array();
  16  
  17  $returnurl = "$CFG->wwwroot/$CFG->admin/settings.php?section=manageauths";
  18  
  19  // save configuration changes
  20  if ($frm = data_submitted() and confirm_sesskey()) {
  21  
  22      $authplugin->validate_form($frm, $err);
  23  
  24      if (count($err) == 0) {
  25  
  26          // save plugin config
  27          if ($authplugin->process_config($frm)) {
  28  
  29              // save field lock configuration
  30              foreach ($frm as $name => $value) {
  31                  if (preg_match('/^lockconfig_(.+?)$/', $name, $matches)) {
  32                      $plugin = "auth/$auth";
  33                      $name   = $matches[1];
  34                      set_config($name, $value, $plugin);
  35                  }
  36              }
  37              redirect($returnurl);
  38              exit;
  39          }
  40      } else {
  41          foreach ($err as $key => $value) {
  42              $focus = "form.$key";
  43          }
  44      }
  45  } else {
  46      $frmlegacystyle = get_config('auth/'.$auth);
  47      $frmnewstyle    = get_config('auth_'.$auth);
  48      $frm = (object)array_merge((array)$frmlegacystyle, (array)$frmnewstyle);
  49  }
  50  
  51  $user_fields = $authplugin->userfields;
  52  //$user_fields = array("firstname", "lastname", "email", "phone1", "phone2", "institution", "department", "address", "city", "country", "description", "idnumber", "lang");
  53  
  54  /// Get the auth title (from core or own auth lang files)
  55      $authtitle = $authplugin->get_title();
  56  /// Get the auth descriptions (from core or own auth lang files)
  57      $authdescription = $authplugin->get_description();
  58  
  59  // output configuration form
  60  echo $OUTPUT->header();
  61  
  62  // choose an authentication method
  63  echo "<form id=\"authmenu\" method=\"post\" action=\"auth_config.php\">\n";
  64  echo "<div>\n";
  65  echo "<input type=\"hidden\" name=\"sesskey\" value=\"".sesskey()."\" />\n";
  66  echo "<input type=\"hidden\" name=\"auth\" value=\"".$auth."\" />\n";
  67  
  68  // auth plugin description
  69  echo $OUTPUT->box_start();
  70  echo $OUTPUT->heading($authtitle);
  71  echo $OUTPUT->box_start('informationbox');
  72  echo $authdescription;
  73  echo $OUTPUT->box_end();
  74  echo "<hr />\n";
  75  $authplugin->config_form($frm, $err, $user_fields);
  76  echo $OUTPUT->box_end();
  77  echo '<p style="text-align: center"><input type="submit" value="' . get_string("savechanges") . "\" /></p>\n";
  78  echo "</div>\n";
  79  echo "</form>\n";
  80  
  81  $PAGE->requires->string_for_js('unmaskpassword', 'core_form');
  82  $PAGE->requires->yui_module('moodle-auth-passwordunmask', 'M.auth.passwordunmask');
  83  
  84  echo $OUTPUT->footer();
  85  exit;
  86  
  87  /// Functions /////////////////////////////////////////////////////////////////
  88  
  89  // Good enough for most auth plugins
  90  // but some may want a custom one if they are offering
  91  // other options
  92  // Note: lockconfig_ fields have special handling.
  93  function print_auth_lock_options($auth, $user_fields, $helptext, $retrieveopts, $updateopts, $customfields = array()) {
  94      global $DB, $OUTPUT;
  95      echo '<tr><td colspan="3">';
  96      if ($retrieveopts) {
  97          echo $OUTPUT->heading(get_string('auth_data_mapping', 'auth'));
  98      } else {
  99          echo $OUTPUT->heading(get_string('auth_fieldlocks', 'auth'));
 100      }
 101      echo '</td></tr>';
 102  
 103      $lockoptions = array ('unlocked'        => get_string('unlocked', 'auth'),
 104                            'unlockedifempty' => get_string('unlockedifempty', 'auth'),
 105                            'locked'          => get_string('locked', 'auth'));
 106      $updatelocaloptions = array('oncreate'  => get_string('update_oncreate', 'auth'),
 107                                  'onlogin'   => get_string('update_onlogin', 'auth'));
 108      $updateextoptions = array('0'  => get_string('update_never', 'auth'),
 109                                '1'   => get_string('update_onupdate', 'auth'));
 110  
 111      $pluginconfig = get_config("auth/$auth");
 112  
 113      // Helptext is on a field with rowspan.
 114      if (empty($helptext)) {
 115          $helptext = '&nbsp;';
 116      }
 117  
 118      // If we have custom fields then merge them with user fields.
 119      if (!empty($customfields)) {
 120          $user_fields = array_merge($user_fields, $customfields);
 121      }
 122  
 123      if (!empty($customfields)) {
 124          $customfieldname = $DB->get_records('user_info_field', null, '', 'shortname, name');
 125      }
 126      foreach ($user_fields as $field) {
 127          // Define some vars we'll work with.
 128          if (!isset($pluginconfig->{"field_map_$field"})) {
 129              $pluginconfig->{"field_map_$field"} = '';
 130          }
 131          if (!isset($pluginconfig->{"field_updatelocal_$field"})) {
 132              $pluginconfig->{"field_updatelocal_$field"} = '';
 133          }
 134          if (!isset($pluginconfig->{"field_updateremote_$field"})) {
 135              $pluginconfig->{"field_updateremote_$field"} = '';
 136          }
 137          if (!isset($pluginconfig->{"field_lock_$field"})) {
 138              $pluginconfig->{"field_lock_$field"} = '';
 139          }
 140  
 141          // Define the fieldname we display to the  user.
 142          $fieldname = $field;
 143          if ($fieldname === 'lang') {
 144              $fieldname = get_string('language');
 145          } elseif (!empty($customfields) && in_array($field, $customfields)) {
 146              // If custom field then pick name from database.
 147              $fieldshortname = str_replace('profile_field_', '', $fieldname);
 148              $fieldname = $customfieldname[$fieldshortname]->name;
 149          } elseif (preg_match('/^(.+?)(\d+)$/', $fieldname, $matches)) {
 150              $fieldname =  get_string($matches[1]) . ' ' . $matches[2];
 151          } elseif ($fieldname == 'url') {
 152              $fieldname = get_string('webpage');
 153          } else {
 154              $fieldname = get_string($fieldname);
 155          }
 156          if ($retrieveopts) {
 157              $varname = 'field_map_' . $field;
 158  
 159              echo '<tr valign="top"><td align="right">';
 160              echo '<label for="lockconfig_'.$varname.'">'.$fieldname.'</label>';
 161              echo '</td><td>';
 162  
 163              echo "<input id=\"lockconfig_{$varname}\" name=\"lockconfig_{$varname}\" type=\"text\" size=\"30\" value=\"{$pluginconfig->$varname}\" />";
 164              echo '<div style="text-align: right">';
 165              echo '<label for="menulockconfig_field_updatelocal_'.$field.'">'.get_string('auth_updatelocal', 'auth') . '</label>&nbsp;';
 166              echo html_writer::select($updatelocaloptions, "lockconfig_field_updatelocal_{$field}", $pluginconfig->{"field_updatelocal_$field"}, false);
 167              echo '<br />';
 168              if ($updateopts) {
 169                  echo '<label for="menulockconfig_field_updateremote_'.$field.'">'.get_string('auth_updateremote', 'auth') . '</label>&nbsp;';
 170                  echo html_writer::select($updateextoptions, "lockconfig_field_updateremote_{$field}", $pluginconfig->{"field_updateremote_$field"}, false);
 171                  echo '<br />';
 172              }
 173              echo '<label for="menulockconfig_field_lock_'.$field.'">'.get_string('auth_fieldlock', 'auth') . '</label>&nbsp;';
 174              echo html_writer::select($lockoptions, "lockconfig_field_lock_{$field}", $pluginconfig->{"field_lock_$field"}, false);
 175              echo '</div>';
 176          } else {
 177              echo '<tr valign="top"><td align="right">';
 178              echo '<label for="menulockconfig_field_lock_'.$field.'">'.$fieldname.'</label>';
 179              echo '</td><td>';
 180              echo html_writer::select($lockoptions, "lockconfig_field_lock_{$field}", $pluginconfig->{"field_lock_$field"}, false);
 181          }
 182          echo '</td>';
 183          if (!empty($helptext)) {
 184              echo '<td rowspan="' . count($user_fields) . '">' . $helptext . '</td>';
 185              $helptext = '';
 186          }
 187          echo '</tr>';
 188      }
 189  }


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