smbind-ng/src/zoneadd.php

77 lines
2.5 KiB
PHP

<?php
require_once "include.php";
if($user->isAdmin()) {
$arr = array(
'name' => $_POST['name'],
'pri_dns' => $_POST['pri_dns'],
'sec_dns' => $_POST['sec_dns'],
'refresh' => $_POST['refresh'],
'retry' => $_POST['retry'],
'expire' => $_POST['expire'],
'ttl' => $_POST['ttl'],
'owner' => $_POST['owner'],
);
$nz = new masterZone($arr);
if (!$nz->loadZoneHead()) {
$nz->setZoneHead($arr);
$nz->saveZoneHead();
$www = ((isset($_POST['www'])) && ($_POST['www'] >'')) ? $_POST['www'] : NULL;
if ($www){
$type = (filter_var($www, FILTER_VALIDATE_IP)) ? 'A' : 'CNAME';
if ($type == 'A') {
$nz->addRecord(array(
'host' => '@',
'type' => 'A',
'destination' => $www,
));
$nz->addRecord(array(
'host' => 'www',
'type' => 'CNAME',
'destination' => '@',
));
} else {
$nz->addRecord(array(
'host' => 'www',
'type' => 'CNAME',
'destination' => $www,
));
}
}
$ftp = ((isset($_POST['ftp'])) && ($_POST['ftp'] >'')) ? $_POST['ftp'] : NULL;
if ($ftp) {
$type = (filter_var($ftp, FILTER_VALIDATE_IP)) ? 'A' : 'CNAME';
$nz->addRecord(array(
'host' => 'ftp',
'type' => $type,
'destination' => $ftp,
));
}
$mail = ((isset($_POST['mail'])) && ($_POST['mail'] >'')) ? $_POST['mail'] : NULL;
if ($mail) {
$type = (filter_var($mail, FILTER_VALIDATE_IP)) ? 'A' : 'MX';
$destination = ($type == 'A') ? 'mail' : $mail;
if ($type == 'A') {
$nz->addRecord(array(
'host' => 'mail',
'type' => $type,
'destination' => $mail,
));
$type = 'MX';
}
$nz->addRecord(array(
'host' => '@',
'type' => $type,
'destination' => $destination,
'pri' => 10,
));
}
$nz->saveZone();
$user->loadUserZones();
} else {
problem("existzone");
}
}
?>