From be9683ef83f833effcb3c6a563955e3f7bd0c1b5 Mon Sep 17 00:00:00 2001 From: Mark Schouten Date: Wed, 3 Aug 2016 16:08:57 +0200 Subject: [PATCH] Allow saving of zones --- zones.php | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/zones.php b/zones.php index c6e18da..63b6fd9 100644 --- a/zones.php +++ b/zones.php @@ -415,41 +415,30 @@ case "create": break; 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['owner'] !== $zoneowner) { + if ($zone->account !== $zoneowner) { if (!is_adminuser()) { header("Status: 403 Access denied"); jtable_respond(null, 'error', "Can't change owner"); } else { - add_db_zone($zone['name'], $zoneowner); - $zone['owner'] = $zoneowner; + add_db_zone($zone->id, $zoneowner); + $zone->setaccount($zoneowner); } } $update = false; if (isset($_POST['masters'])) { - $zone['masters'] = preg_split('/[,;\s]+/', $_POST['masters'], null, PREG_SPLIT_NO_EMPTY); - $update = true; + $zone->erasemasters(); + foreach(preg_split('/[,;\s]+/', $_POST['masters'], null, PREG_SPLIT_NO_EMPTY) as $master) { + $zone->addmaster($master); + } } - if ($update) { - $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'); + jtable_respond($api->savezone($zone->export()), 'single'); break; case "createrecord":