* GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) */ namespace Panel\Vdns; class ZonesAdd extends \Panel\Vdns { function beforeRoute($f3) { parent::beforeRoute($f3); } static function get($f3) { echo \Template::instance()->render('vdns/zones-add.html'); } function post($f3) { // print_r($_POST); /* force zone to be all lower case */ $zone = strtolower($_POST['zone']); /* strip spaces */ $zone = trim($zone); /* remove leading www. */ $zone = preg_replace('/^www\./', '', $zone); /* remove trailing . (dot) */ $zone = rtrim($zone, '.'); if ($f3->call('\Panel::validateDomain', $zone)) { /* check if zone exists */ if ($f3->call('\Panel\Vdns::verifyZoneExists', $zone)) { $messages[] = "Zone $zone already exists in DNS."; $messages[] = "Note if $zone should be associated with this server but it's now showing up in the list below please contact support."; $f3->set('SESSION.messages', $messages); $f3->call('\Panel\Vdns\ZonesAdd::get', $f3); } else { $hostname = $f3->get('NAV.hostname'); exec("/usr/local/bin/vdns-zone-add.sh -z $zone -w hostname=$hostname/$zone", $output, $result_code); if ($result_code == 0) { $messages[] = "Zone (Domain Name) $zone has been added to DNS."; $f3->set('SESSION.messages', $messages); $f3->reroute("/DNS/$zone"); } else { if (count($output) > 0) { foreach ($output as $k=>$output_message) { $messages[] = "$output_message"; } } else { $messages[] = "Unknown error adding Zone $zone to DNS."; } $f3->set('SESSION.messages', $messages); $f3->call('\Panel\Vdns\ZonesAdd::get', $f3); } } } else { $f3->call('\Panel\Vdns\ZonesAdd::get', $f3); } } }