mirror of
https://github.com/serghey-rodin/vesta.git
synced 2025-08-13 10:07:42 -07:00
197 lines
6 KiB
PHP
197 lines
6 KiB
PHP
<?php
|
|
// Init
|
|
error_reporting(NULL);
|
|
ob_start();
|
|
session_start();
|
|
$TAB = 'DNS';
|
|
|
|
include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
|
|
|
|
// Check domain name
|
|
if (empty($_GET['domain'])) {
|
|
header("Location: /list/dns/");
|
|
exit;
|
|
}
|
|
|
|
// Edit as someone else?
|
|
if (($_SESSION['user'] == 'admin') && (!empty($_GET['user']))) {
|
|
$user = $_GET['user'];
|
|
}
|
|
$v_username = $user;
|
|
|
|
// List dns domain
|
|
if ((!empty($_GET['domain'])) && (empty($_GET['record_id']))) {
|
|
$v_domain = $_GET['domain'];
|
|
|
|
v_exec('v-list-dns-domain', [$user, $v_domain, 'json'], true, $output);
|
|
$data = json_decode($output, true);
|
|
|
|
// Parse dns domain
|
|
$v_ip = $data[$v_domain]['IP'];
|
|
$v_template = $data[$v_domain]['TPL'];
|
|
$v_ttl = $data[$v_domain]['TTL'];
|
|
$v_exp = $data[$v_domain]['EXP'];
|
|
$v_soa = $data[$v_domain]['SOA'];
|
|
$v_date = $data[$v_domain]['DATE'];
|
|
$v_time = $data[$v_domain]['TIME'];
|
|
$v_suspended = $data[$v_domain]['SUSPENDED'];
|
|
if ( $v_suspended == 'yes' ) {
|
|
$v_status = 'suspended';
|
|
} else {
|
|
$v_status = 'active';
|
|
}
|
|
|
|
// List dns templates
|
|
v_exec('v-list-dns-templates', ['json'], false, $output);
|
|
$templates = json_decode($output, true);
|
|
}
|
|
|
|
// List dns record
|
|
if ((!empty($_GET['domain'])) && (!empty($_GET['record_id']))) {
|
|
$v_domain = $_GET['domain'];
|
|
$v_record_id = $_GET['record_id'];
|
|
|
|
v_exec('v-list-dns-records', [$user, $v_domain, 'json'], true, $output);
|
|
$data = json_decode($output, true);
|
|
|
|
// Parse dns record
|
|
$v_rec = $data[$v_record_id]['RECORD'];
|
|
$v_type = $data[$v_record_id]['TYPE'];
|
|
$v_val = $data[$v_record_id]['VALUE'];
|
|
$v_priority = $data[$v_record_id]['PRIORITY'];
|
|
$v_suspended = $data[$v_record_id]['SUSPENDED'];
|
|
if ( $v_suspended == 'yes' ) {
|
|
$v_status = 'suspended';
|
|
} else {
|
|
$v_status = 'active';
|
|
}
|
|
$v_date = $data[$v_record_id]['DATE'];
|
|
$v_time = $data[$v_record_id]['TIME'];
|
|
}
|
|
|
|
// Check POST request for dns domain
|
|
if ((!empty($_POST['save'])) && (!empty($_GET['domain'])) && (empty($_GET['record_id']))) {
|
|
$v_domain = $_POST['v_domain'];
|
|
|
|
// Check token
|
|
if ((!isset($_POST['token'])) || ($_SESSION['token'] != $_POST['token'])) {
|
|
header('location: /login/');
|
|
exit;
|
|
}
|
|
|
|
// Change domain IP
|
|
if (($v_ip != $_POST['v_ip']) && (empty($_SESSION['error_msg']))) {
|
|
$v_ip = $_POST['v_ip'];
|
|
v_exec('v-change-dns-domain-ip', [$v_username, $v_domain, $v_ip, 'no']);
|
|
$restart_dns = 'yes';
|
|
}
|
|
|
|
// Change domain template
|
|
if (($v_template != $_POST['v_template']) && (empty($_SESSION['error_msg']))) {
|
|
$v_template = $_POST['v_template'];
|
|
v_exec('v-change-dns-domain-tpl', [$v_username, $v_domain, $v_template, 'no']);
|
|
$restart_dns = 'yes';
|
|
}
|
|
|
|
// Change SOA record
|
|
if (($v_soa != $_POST['v_soa']) && (empty($_SESSION['error_msg']))) {
|
|
$v_soa = $_POST['v_soa'];
|
|
v_exec('v-change-dns-domain-soa', [$v_username, $v_domain, $v_soa, 'no']);
|
|
$restart_dns = 'yes';
|
|
}
|
|
|
|
// Change expiriation date
|
|
if (($v_exp != $_POST['v_exp']) && (empty($_SESSION['error_msg']))) {
|
|
$v_exp = $_POST['v_exp'];
|
|
v_exec('v-change-dns-domain-exp', [$v_username, $v_domain, $v_exp, 'no']);
|
|
}
|
|
|
|
// Change domain ttl
|
|
if (($v_ttl != $_POST['v_ttl']) && (empty($_SESSION['error_msg']))) {
|
|
$v_ttl = $_POST['v_ttl'];
|
|
v_exec('v-change-dns-domain-ttl', [$v_username, $v_domain, $v_ttl, 'no']);
|
|
$restart_dns = 'yes';
|
|
}
|
|
|
|
// Restart dns server
|
|
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
|
|
v_exec('v-restart-dns');
|
|
}
|
|
|
|
// Set success message
|
|
if (empty($_SESSION['error_msg'])) {
|
|
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
|
}
|
|
}
|
|
|
|
// Check POST request for dns record
|
|
if ((!empty($_POST['save'])) && (!empty($_GET['domain'])) && (!empty($_GET['record_id']))) {
|
|
|
|
// Check token
|
|
if ((!isset($_POST['token'])) || ($_SESSION['token'] != $_POST['token'])) {
|
|
header('location: /login/');
|
|
exit;
|
|
}
|
|
|
|
$v_domain = $_POST['v_domain'];
|
|
$v_record_id = $_POST['v_record_id'];
|
|
|
|
// Change dns record
|
|
if (($v_val != $_POST['v_val']) || ($v_priority != $_POST['v_priority']) && (empty($_SESSION['error_msg']))) {
|
|
$v_val = $_POST['v_val'];
|
|
$v_priority = $_POST['v_priority'];
|
|
v_exec('v-change-dns-record', [$v_username, $v_domain, $v_record_id, $v_val, $v_priority]);
|
|
$restart_dns = 'yes';
|
|
}
|
|
|
|
// Change dns record id
|
|
if (($_GET['record_id'] != $_POST['v_record_id']) && (empty($_SESSION['error_msg']))) {
|
|
$v_old_record_id = $_GET['record_id'];
|
|
v_exec('v-change-dns-record-id', [$v_username, $v_domain, $v_old_record_id, $v_record_id]);
|
|
$restart_dns = 'yes';
|
|
}
|
|
|
|
// Restart dns server
|
|
if (!empty($restart_dns) && (empty($_SESSION['error_msg']))) {
|
|
v_exec('v-restart-dns');
|
|
}
|
|
|
|
// Set success message
|
|
if (empty($_SESSION['error_msg'])) {
|
|
$_SESSION['ok_msg'] = __('Changes has been saved.');
|
|
}
|
|
|
|
// Change url if record id was changed
|
|
if ((empty($_SESSION['error_msg'])) && ($_GET['record_id'] != $_POST['v_record_id'])) {
|
|
header("Location: /edit/dns/?domain=".$_GET['domain']."&record_id=".$_POST['v_record_id']);
|
|
exit;
|
|
}
|
|
}
|
|
|
|
// Header
|
|
include($_SERVER['DOCUMENT_ROOT'].'/templates/header.html');
|
|
|
|
// Panel
|
|
top_panel($user,$TAB);
|
|
|
|
// Display body for dns domain
|
|
if ((!empty($_GET['domain'])) && (empty($_GET['record_id']))) {
|
|
if ($_SESSION['user'] == 'admin') {
|
|
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_dns.html');
|
|
} else {
|
|
include($_SERVER['DOCUMENT_ROOT'].'/templates/user/edit_dns.html');
|
|
}
|
|
}
|
|
|
|
// List dns record
|
|
if ((!empty($_GET['domain'])) && (!empty($_GET['record_id']))) {
|
|
// Display body for dns record
|
|
include($_SERVER['DOCUMENT_ROOT'].'/templates/admin/edit_dns_rec.html');
|
|
}
|
|
|
|
// Flush session messages
|
|
unset($_SESSION['error_msg']);
|
|
unset($_SESSION['ok_msg']);
|
|
|
|
// Footer
|
|
include($_SERVER['DOCUMENT_ROOT'].'/templates/footer.html');
|