Florian Schaal
2015-05-07 741aa6aa3ec188aa4f37b26dc3314e2d0cd811aa
interface/web/tools/resync.php
old mode 100755 new mode 100644
@@ -87,14 +87,17 @@
             'mail_domain' => array (
                 'index_field' => 'domain_id',
                 'server_type' => 'mail',
               'server_id' => $server_id,
             ),
             'mail_mailinglist' => array (
                 'index_field' =>  'mailinglist_id',
                 'server_type' => 'mail',
               'server_id' => $server_id,
             ),
             'mail_user' => array (
                 'index_field' =>  'mailuser_id',
                 'server_type' => 'mail',
               'server_id' => $server_id,
             ),
         );
      }
@@ -103,6 +106,7 @@
            'mail_access' => array (
               'index_field' => 'access_id',
                 'server_type' => 'mail',
               'server_id' => $server_id,
             ),
            'mail_content_filter' => array (
               'index_field' => 'content_filter_id',
@@ -119,18 +123,22 @@
             'web_domain' => array (
                 'index_field' => 'domain_id',
                 'server_type' => 'web',
               'server_id' => $server_id,
             ),
             'shell_user' => array (
                 'index_field' => 'shell_user_id',
                 'server_type' => 'web',
               'server_id' => $server_id,
             ),
             'cron' => array (
                 'index_field' => 'id',
                 'server_type' => 'cron',
               'server_id' => $server_id,
             ),
             'ftp_user' => array (
                 'index_field' => 'ftp_user_id',
                 'server_type' => 'web',
               'server_id' => $server_id,
             ),
         );
      }
@@ -139,6 +147,7 @@
            'dns_soa' => array (
               'index_field' => 'id',
               'server_type' => 'dns',
               'server_id' => $server_id,
            ),
         );
      }
@@ -147,6 +156,7 @@
             'webdav_user' => array (
                 'index_field' => 'webdav_user_id',
                 'server_type' => 'file',
               'server_id' => $server_id,
             ),
         );
      }
@@ -155,6 +165,7 @@
            'web_database' => array (
               'index_field' => 'web_database_id',
               'server_type' => 'db',
               'server_id' => $server_id,
            ),
         );
      }
@@ -163,6 +174,7 @@
            'openvz_vm' => array (
               'index_field' => 'vm_id',
               'server_type' => 'vserver',
               'server_id' => $server_id,
            ),
         );
      }
@@ -170,7 +182,8 @@
      //* firewall
      $array_out = array();
      foreach($server_data as $db_table => $data) {
         $records = $app->db->queryAllRecords("SELECT * FROM $db_table WHERE server_id = ?", $server_id);
         $sql = @(isset($data['server_id']))?"SELECT * FROM ?? WHERE server_id = ?":"SELECT * FROM ??";
         $records = $app->db->queryAllRecords($sql, $db_table, $server_id);
         if (!empty($records)) array_push($array_out, $db_table);
      }
@@ -359,12 +372,12 @@
   }
         
   //* fetch values during do_resync
   private function query_server($db_table, $server_id, $server_type, $active=true) {
   private function query_server($db_table, $server_id, $server_type, $active=true, $opt='') {
      global $app;
      $server_name = array();
      if ( $server_id == 0 ) { //* resync multiple server
         $temp = $app->db->queryAllRecords("SELECT server_id, server_name FROM server WHERE ".$server_type."_server = 1 AND active = 1 AND mirror_server_id = 0");
         $temp = $app->db->queryAllRecords("SELECT server_id, server_name FROM server WHERE ?? = 1 AND active = 1 AND mirror_server_id = 0", $server_type."_server");
         foreach ($temp as $server) {
            $temp_id .= $server['server_id'].',';
            $server_name[$server['server_id']] = $server['server_name'];
@@ -376,9 +389,11 @@
      unset($temp);
      if ( isset($temp_id) ) $server_id = rtrim($temp_id,',');
      $sql = "SELECT * FROM $db_table WHERE server_id IN (".$server_id.")";
      $sql = "SELECT * FROM ??";
      if ($db_table != "mail_user_filter") $sql .= " WHERE server_id IN (".$server_id.") ";
      $sql .= $opt;
      if ($active) $sql .= " AND active = 'y'"; 
      $records = $app->db->queryAllRecords($sql);
      $records = $app->db->queryAllRecords($sql, $db_table);
      return array($records, $server_name);
   }         
@@ -394,7 +409,7 @@
      if(!empty($records)) 
         foreach($records as $rec) {
            $app->db->datalogUpdate($db_table, $rec, $index_field, $rec[$index_field], true);
            $msg .= '['.$server_name[$rec['server_id']].'] '.$rec[$msg_field].'<br>';
            if(!empty($rec[$msg_field])) $msg .= '['.$server_name[$rec['server_id']].'] '.$rec[$msg_field].'<br>';
         }
      else $msg .= $app->tform->wordbook['no_results_txt'].'<br>';
@@ -453,7 +468,7 @@
      //* database
      if(isset($this->dataRecord['resync_db']) && $this->dataRecord['resync_db'] == 1) {
         $msg .= $this->do_resync('web_database_user', 'database_user_id', 'db', $this->dataRecord['db_server_id'], 'database_user',  $app->tform->wordbook['do_db_user_txt']);
         $msg .= $this->do_resync('web_database_user', 'database_user_id', 'db', $this->dataRecord['db_server_id'], 'database_user',  $app->tform->wordbook['do_db_user_txt'], false);
         $msg .= $this->do_resync('web_database', 'database_id', 'db', $this->dataRecord['db_server_id'], 'database_name',  $app->tform->wordbook['do_db_txt']);
      }
@@ -491,19 +506,19 @@
         $msg .= '<b>'.$app->tform->wordbook['do_dns_txt'].'</b><br>';
         if(is_array($soa_records) && !empty($soa_records)) 
            foreach($soa_records as $soa_rec) {
               $temp = $this->query_server('dns_rr', $soa_rec['server_id'], $server_type);
               $temp = $this->query_server('dns_rr', $soa_rec['server_id'], 'dns', true, "AND zone = ".$app->functions->intval($soa_rec['id']));
               $rr_records = $temp[0];
               if(!empty($rr_records)) {
                  foreach($rr_records as $rec) {
                     $new_serial = $app->validate_dns->increase_serial($rec['serial']);
                     $app->db->datalogUpdate('dns_rr', "serial = '".$new_serial."'", 'id', $rec['id']);
                     $app->db->datalogUpdate('dns_rr', array("serial" => $new_serial), 'id', $rec['id']);
                  }
               } else { 
                  $msg .= $app->tform->wordbook['no_results_txt'].'<br>';
               }
               $new_serial = $app->validate_dns->increase_serial($soa_rec['serial']);
               $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $soa_rec['id']);
               $msg .= '['.$server_name[$soa_rec['server_id']].'] '.$soa_rec['origin'].'<br>';
               $app->db->datalogUpdate('dns_soa', array("serial" => $new_serial), 'id', $soa_rec['id']);
               $msg .= '['.$server_name[$soa_rec['server_id']].'] '.$soa_rec['origin'].' ('.count($rr_records).')<br>';
            }
         else $msg .= $app->tform->wordbook['no_results_txt'].'<br>'; 
@@ -514,7 +529,7 @@
      if($this->dataRecord['resync_client'] == 1) {
           $db_table = 'client';
           $index_field = 'client_id';
           $records = $app->db->queryAllRecords("SELECT * FROM ".$db_table);
           $records = $app->db->queryAllRecords("SELECT * FROM ??", $db_table);
         $msg .= '<b>'.$app->tform->wordbook['do_clients_txt'].'</b><br>';
         if(!empty($records)) {
              $tform_def_file = '../client/form/client.tform.php';