You are here

function drd_server_settings_submit in Drupal Remote Dashboard Server 6.2

Same name and namespace in other branches
  1. 7.2 drd_server.admin.inc \drd_server_settings_submit()

Submit handler for the settings form.

_state

Parameters

array $form:

File

./drd_server.admin.inc, line 89

Code

function drd_server_settings_submit($form, $form_state) {
  if ($form_state['values']['op'] == $form_state['values']['drd_server_debug_export']) {
    _drd_server_export_debug_log();
    drupal_goto('admin/config/system/drd_settings');
  }
  if ($form_state['values']['op'] != $form['submit']['#value']) {

    // An edit button was clicked.
    foreach ($form['drd_aes_keys'] as $ip => $key_form) {
      if (is_array($key_form)) {
        if ($key_form['edit']['#value'] == $form_state['values']['op']) {
          drupal_goto('admin/settings/drd_settings/' . $ip);
        }
      }
    }

    // No valid button was found
    drupal_goto('admin/config/system/drd_settings');
  }
  variable_set('drd_allowed_referer', $form_state['values']['drd_allowed_referer']);
  $ips = drd_get_allowed_referers($form_state['values']['drd_allowed_referer']);
  $aes_keys = variable_get('drd_aes_keys', array());
  foreach ($aes_keys as $key => $def) {
    $aes_keys[$key]['keep'] = FALSE;
  }
  $changed = FALSE;
  if (!empty($aes_keys)) {
    $keys = array_keys($aes_keys);
    $master = $aes_keys[$keys[0]];
    foreach ($ips as $ip) {
      if (!array_key_exists($ip, $aes_keys)) {
        $aes_keys[$ip] = $master;
        $aes_keys[$ip]['keep'] = TRUE;
        $changed = TRUE;
      }
      else {
        $aes_keys[$ip]['keep'] = TRUE;
      }
    }
  }
  foreach ($aes_keys as $key => $def) {
    if (!$aes_keys[$key]['keep']) {
      unset($aes_keys[$key]);
      $changed = TRUE;
    }
  }
  if ($changed) {
    variable_set('drd_aes_keys', $aes_keys);
    $sites = drd_server_read_sites();
    drd_server_key_remote($sites, $aes_keys);
  }
}