diff --git a/includes/class/Zone.php b/includes/class/Zone.php index c759dee..a429550 100644 --- a/includes/class/Zone.php +++ b/includes/class/Zone.php @@ -26,10 +26,10 @@ class Zone { $this->setAccount($data['account']); $this->setSerial($data['serial']); $this->url = $data['url']; - if (isset($data['soa_edit'])) + if (isset($data['soa_edit']) && $data['soa_edit'] != "") $this->setSoaEdit($data['soa_edit']); - if (isset($data['soa_edit_api'])) - $this->setSoaEditApi($data['soa_edit_api']); + if (isset($data['soa_edit_api']) && $data['soa_edit_api'] != "") + $this->setSoaEditApi($data['soa_edit_api'], True); foreach ($data['masters'] as $master) { $this->addMaster($master); @@ -76,7 +76,12 @@ class Zone { $this->soa_edit = $soaedit; } - public function setSoaEditApi($soaeditapi) { + public function setSoaEditApi($soaeditapi, $overwrite=False) { + if (isset($this->soa_edit_api) and $this->soa_edit_api != "") { + if ($overwrite === False) { + return False; + } + } $this->soa_edit_api = $soaeditapi; } public function setName($name) { @@ -181,8 +186,12 @@ class Zone { $ret['nameservers'] = $this->nameservers; $ret['kind'] = $this->kind; $ret['name'] = $this->name; - $ret['soa_edit'] = $this->soa_edit; - $ret['soa_edit_api'] = ($this->soa_edit_api == "") ? $defaults['soa_edit_api'] : $this->soa_edit_api; + if (isset($this->soa_edit) && $this->soa_edit != "") { + $ret['soa_edit'] = $this->soa_edit; + } + if (isset($this->soa_edit_api) && $this->soa_edit_api != "") { + $ret['soa_edit_api'] = $this->soa_edit_api; + } if ($this->zone) { $ret['zone'] = $this->zone; return $ret; diff --git a/zones.php b/zones.php index 50e255e..21e060b 100644 --- a/zones.php +++ b/zones.php @@ -272,7 +272,7 @@ case "create": $zone->importData($_POST['zone']); } if (isset($defaults['soa_edit_api'])) { - $zone->setSoaEditApi($defaults['soa_edit_api']); + $zone->setSoaEditApi($defaults['soa_edit_api'], True); } if (isset($defaults['soa_edit'])) { $zone->setSoaEdit($defaults['soa_edit']); @@ -334,6 +334,8 @@ case "create": case "update": $zone = new Zone(); $zone->parse($api->loadzone($_POST['id'])); + if ($zone->setSoaEditApi($defaults['soa_edit_api']) != False) + writelog("Set SOA-EDIT-API to ".$defaults['soa_edit_api']." for ",$zone->name); $zoneaccount = isset($_POST['account']) ? $_POST['account'] : $zone->account; if ($zone->account !== $zoneaccount) { @@ -360,6 +362,8 @@ case "update": case "createrecord": $zone = new Zone(); $zone->parse($api->loadzone($_GET['zoneid'])); + if ($zone->setSoaEditApi($defaults['soa_edit_api']) != False) + writelog("Set SOA-EDIT-API to ".$defaults['soa_edit_api']." for ",$zone->name); $name = isset($_POST['name']) ? $_POST['name'] : ''; $type = $_POST['type']; @@ -404,6 +408,8 @@ case "createrecord": case "editrecord": $zone = new Zone(); $zone->parse($api->loadzone($_GET['zoneid'])); + if ($zone->setSoaEditApi($defaults['soa_edit_api']) != False) + writelog("Set SOA-EDIT-API to ".$defaults['soa_edit_api']." for ",$zone->name); $old_record = decode_record_id(isset($_POST['id']) ? $_POST['id'] : ''); @@ -421,6 +427,8 @@ case "editrecord": case "deleterecord": $zone = new Zone(); $zone->parse($api->loadzone($_GET['zoneid'])); + if ($zone->setSoaEditApi($defaults['soa_edit_api']) != False) + writelog("Set SOA-EDIT-API to ".$defaults['soa_edit_api']." for ",$zone->name); $old_record = decode_record_id(isset($_POST['id']) ? $_POST['id'] : ''); $rrset = $zone->getRRSet($old_record['name'], $old_record['type']); @@ -451,6 +459,8 @@ case "clone": $srczone = new Zone(); $srczone->parse($api->loadzone($src)); + if ($srczone->setSoaEditApi($defaults['soa_edit_api']) != False) + writelog("Set SOA-EDIT-API to ".$defaults['soa_edit_api']." for ",$srczone->name); $srczone->setId(''); $srczone->setName($name);