mirror of
https://github.com/tuxis-ie/nsedit.git
synced 2025-04-21 20:22:33 +03:00
added automatic SOA-update function
This commit is contained in:
parent
20eb8afa2b
commit
5657e5636c
1 changed files with 17 additions and 0 deletions
17
zones.php
17
zones.php
|
@ -393,6 +393,18 @@ function get_zone_keys($zone) {
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function update_soa($zone) {
|
||||||
|
$soa = get_records_by_name_type($zone, $zone['name'], "SOA");
|
||||||
|
$serial = explode(" ", $soa[0]['content'])[2];
|
||||||
|
if(date("Ymd") == substr($serial, 0, -2)) {
|
||||||
|
$new_serial = date("Ymd").substr($serial, -2)+1;
|
||||||
|
} else {
|
||||||
|
$new_serial = date("Ymd")."00";
|
||||||
|
}
|
||||||
|
$soa[0]['content'] = str_replace($serial, $new_serial, $soa[0]['content']);
|
||||||
|
update_records($zone, $soa[0], $soa);
|
||||||
|
}
|
||||||
|
|
||||||
function check_owner($zone) {
|
function check_owner($zone) {
|
||||||
return is_adminuser() or ($zone['owner'] === get_sess_user());
|
return is_adminuser() or ($zone['owner'] === get_sess_user());
|
||||||
}
|
}
|
||||||
|
@ -558,6 +570,7 @@ case "update":
|
||||||
} else {
|
} else {
|
||||||
$newZone = $zone;
|
$newZone = $zone;
|
||||||
}
|
}
|
||||||
|
update_soa($newZone);
|
||||||
unset($newZone['records']);
|
unset($newZone['records']);
|
||||||
unset($newZone['comments']);
|
unset($newZone['comments']);
|
||||||
|
|
||||||
|
@ -569,6 +582,7 @@ case "delete":
|
||||||
|
|
||||||
api_request($zone['url'], array(), 'DELETE');
|
api_request($zone['url'], array(), 'DELETE');
|
||||||
delete_db_zone($zone['name']);
|
delete_db_zone($zone['name']);
|
||||||
|
update_soa($zone);
|
||||||
jtable_respond(null, 'delete');
|
jtable_respond(null, 'delete');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -588,6 +602,7 @@ case "listrecords":
|
||||||
case "createrecord":
|
case "createrecord":
|
||||||
$zone = get_zone_by_url(isset($_GET['zoneurl']) ? $_GET['zoneurl'] : '');
|
$zone = get_zone_by_url(isset($_GET['zoneurl']) ? $_GET['zoneurl'] : '');
|
||||||
$record = create_record($zone, $_POST);
|
$record = create_record($zone, $_POST);
|
||||||
|
update_soa($zone);
|
||||||
|
|
||||||
$record['id'] = json_encode($record);
|
$record['id'] = json_encode($record);
|
||||||
jtable_respond($record, 'single');
|
jtable_respond($record, 'single');
|
||||||
|
@ -611,6 +626,7 @@ case "editrecord":
|
||||||
array_push($records, $record);
|
array_push($records, $record);
|
||||||
update_records($zone, $record, $records);
|
update_records($zone, $record, $records);
|
||||||
}
|
}
|
||||||
|
update_soa($zone);
|
||||||
|
|
||||||
$record['id'] = json_encode($record);
|
$record['id'] = json_encode($record);
|
||||||
jtable_respond($record, 'single');
|
jtable_respond($record, 'single');
|
||||||
|
@ -623,6 +639,7 @@ case "deleterecord":
|
||||||
$records = get_records_except($zone, $old_record);
|
$records = get_records_except($zone, $old_record);
|
||||||
|
|
||||||
update_records($zone, $old_record, $records);
|
update_records($zone, $old_record, $records);
|
||||||
|
update_soa($zone);
|
||||||
jtable_respond(null, 'delete');
|
jtable_respond(null, 'delete');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue