Allow saving of zones

This commit is contained in:
Mark Schouten 2016-08-03 16:08:57 +02:00
parent 4d6ecb612e
commit be9683ef83

View file

@ -415,41 +415,30 @@ case "create":
break; break;
case "update": case "update":
$zone = get_zone_by_id(isset($_POST['id']) ? $_POST['id'] : ''); $zone = new Zone();
$zone->parse($api->loadzone($_POST['id']));
$zoneowner = isset($_POST['owner']) ? $_POST['owner'] : $zone->account;
$zoneowner = isset($_POST['owner']) ? $_POST['owner'] : $zone['owner']; if ($zone->account !== $zoneowner) {
if ($zone['owner'] !== $zoneowner) {
if (!is_adminuser()) { if (!is_adminuser()) {
header("Status: 403 Access denied"); header("Status: 403 Access denied");
jtable_respond(null, 'error', "Can't change owner"); jtable_respond(null, 'error', "Can't change owner");
} else { } else {
add_db_zone($zone['name'], $zoneowner); add_db_zone($zone->id, $zoneowner);
$zone['owner'] = $zoneowner; $zone->setaccount($zoneowner);
} }
} }
$update = false; $update = false;
if (isset($_POST['masters'])) { if (isset($_POST['masters'])) {
$zone['masters'] = preg_split('/[,;\s]+/', $_POST['masters'], null, PREG_SPLIT_NO_EMPTY); $zone->erasemasters();
$update = true; foreach(preg_split('/[,;\s]+/', $_POST['masters'], null, PREG_SPLIT_NO_EMPTY) as $master) {
$zone->addmaster($master);
}
} }
if ($update) { jtable_respond($api->savezone($zone->export()), 'single');
$zoneUpdate = $zone;
unset($zoneUpdate['id']);
unset($zoneUpdate['url']);
unset($zoneUpdate['owner']);
$newZone = api_request($zone['url'], $zoneUpdate, 'PUT');
$newZone['owner'] = $zone['owner'];
} else {
$newZone = $zone;
}
unset($newZone['records']);
unset($newZone['comments']);
jtable_respond($newZone, 'single');
break; break;
case "createrecord": case "createrecord":