tbrehm
2009-06-21 17db6c110f591226c6dd6a7517295f9bd07c30eb
interface/web/dns/dns_soa_edit.php
@@ -1,4 +1,5 @@
<?php
/*
Copyright (c) 2007, Till Brehm, projektfarm Gmbh
All rights reserved.
@@ -27,7 +28,6 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/******************************************
* Begin Form configuration
******************************************/
@@ -45,7 +45,7 @@
$app->auth->check_module_permissions('dns');
// Loading classes
$app->uses('tpl,tform,tform_actions');
$app->uses('tpl,tform,tform_actions,validate_dns');
$app->load('tform_actions');
class page_action extends tform_actions {
@@ -110,7 +110,7 @@
            unset($tmp);
         // When the record is inserted
         } else {
            // set the server ID to the default mailserver of the client
            // set the server ID to the default dnsserver of the client
            $this->dataRecord["server_id"] = $client["default_dnsserver"];
            
            // Check if the user may add another maildomain.
@@ -123,9 +123,21 @@
         }
      }
      
      // Set the serial
      $this->dataRecord["serial"] = time();
      // Update the serial number of the SOA record
      $soa = $app->db->queryOneRecord("SELECT serial FROM dns_soa WHERE id = ".$this->id);
      $this->dataRecord["serial"] = $app->validate_dns->increase_serial($soa["serial"]);
      
      //* Check if soa, ns and mbox have a dot at the end
      if(strlen($this->dataRecord["origin"]) > 0 && substr($this->dataRecord["origin"],-1,1) != '.') $this->dataRecord["origin"] .= '.';
      if(strlen($this->dataRecord["ns"]) > 0 && substr($this->dataRecord["ns"],-1,1) != '.') $this->dataRecord["ns"] .= '.';
      if(strlen($this->dataRecord["mbox"]) > 0 && substr($this->dataRecord["mbox"],-1,1) != '.') $this->dataRecord["mbox"] .= '.';
      //* Replace @ in mbox
      if(stristr($this->dataRecord["mbox"],'@')) {
         $this->dataRecord["mbox"] = str_replace('@','.',$this->dataRecord["mbox"]);
      }
      parent::onSubmit();
   }
   
@@ -163,6 +175,18 @@
         // And we want to update all rr records too, that belong to this record
         $app->db->query("UPDATE dns_rr SET sys_groupid = $client_group_id WHERE zone = ".$this->id);
      }
      //** When the client group has changed, change also the owner of the record if the owner is not the admin user
      if($this->oldDataRecord["client_group_id"] != $this->dataRecord["client_group_id"] && $this->dataRecord["sys_userid"] != 1) {
         $client_group_id = intval($this->dataRecord["client_group_id"]);
         $tmp = $app->db->queryOneREcord("SELECT userid FROM sys_user WHERE default_group = ".$client_group_id);
         if($tmp["userid"] > 0) {
            $app->db->query("UPDATE dns_soa SET sys_userid = ".$tmp["userid"]." WHERE id = ".$this->id);
            $app->db->query("UPDATE dns_rr SET sys_userid = ".$tmp["userid"]." WHERE zone = ".$this->id);
         }
      }
   }
   
}