421 lines
13 KiB
PHP
Executable File
421 lines
13 KiB
PHP
Executable File
<?php
|
|
/*
|
|
----------------------------------------------------------------------
|
|
LICENSE
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License (GPL)
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
To read the license please visit http://www.gnu.org/copyleft/gpl.html
|
|
----------------------------------------------------------------------
|
|
*/
|
|
|
|
/**
|
|
* Change a DOMAIN settings
|
|
*
|
|
* @copyright AlternC-Team 2000-2017 https://alternc.com/
|
|
*/
|
|
|
|
require_once("../class/config.php");
|
|
include_once("head.php");
|
|
|
|
$fields = array (
|
|
"domain" => array ("request", "string", (empty($domain)?"":$domain) ),
|
|
"sub" => array ("request", "string", (empty($sub)?"":$sub) ),
|
|
);
|
|
getFields($fields);
|
|
|
|
$dom->lock();
|
|
if (!$r=$dom->get_domain_all($domain)) {
|
|
$dom->unlock();
|
|
echo $msg->msg_html_all();
|
|
include('foot.php');
|
|
die();
|
|
}
|
|
$dom->unlock();
|
|
|
|
if (isset($_GET["msg"])) {
|
|
$msg->raise("INFO","dom",$_GET["msg"]);
|
|
}
|
|
?>
|
|
<h3><i class="fas fa-globe-africa"></i> <?php printf(_("Manage %s"),$domain); ?></h3>
|
|
<?php
|
|
echo $msg->msg_html_all();
|
|
?>
|
|
<script type="text/javascript">
|
|
function dnson() {
|
|
alert('This function seems unused. If you see this message, please let us know.');
|
|
// enable / disable html components:
|
|
if (document.forms["fdns"].mx.disabled!=null)
|
|
document.forms["fdns"].mx.disabled=false;
|
|
if (document.forms["fdns"].emailon.disabled!=null)
|
|
document.forms["fdns"].emailon.disabled=true;
|
|
if (document.forms["fdns"].emailoff.disabled!=null)
|
|
document.forms["fdns"].emailoff.disabled=true;
|
|
}
|
|
function dnsoff() {
|
|
alert('This function seems unused. If you see this message, please let us know.');
|
|
// enable / disable html components:
|
|
if (document.forms["fdns"].mx.disabled!=null)
|
|
document.forms["fdns"].mx.disabled=true;
|
|
if (document.forms["fdns"].emailon.disabled!=null)
|
|
document.forms["fdns"].emailon.disabled=false;
|
|
if (document.forms["fdns"].emailoff.disabled!=null)
|
|
document.forms["fdns"].emailoff.disabled=false;
|
|
}
|
|
|
|
function destruction_alert() {
|
|
// We don't ask question if DNS is already NO
|
|
if (<?php echo (int)$r["dns"]; ?>!=1) {
|
|
return true;
|
|
}
|
|
if (document.forms["fdns"].email[1].checked) {
|
|
if ( confirm("<?php __("Are you sure you want to do this? This will DELETE ALL the mailboxes, messages and aliases on this domain ?"); ?>") ) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<?php
|
|
|
|
if ($r['dns_action']=='UPDATE') {?>
|
|
<p class="alert alert-info"><?php __("This domain have some DNS change pending. Please wait."); ?></p>
|
|
<?php
|
|
} elseif ($r['dns_action']=='DELETE') {?>
|
|
<p class="alert alert-warning"><?php printf(_("You requested deletion of domain %s."), $domain);?></p>
|
|
<?php
|
|
/*
|
|
// Link hidden as long as the del_domain_cancel function is not complete
|
|
<a href="dom_dodel.php?domain=<?php echo urlencode($domain);?>&del_cancel=true"><?php __("Clic here to cancel deletion");?></a>
|
|
*/
|
|
?>
|
|
<?php
|
|
include_once("foot.php");
|
|
die();
|
|
}
|
|
|
|
if (! empty($r['dns_result']) && $r['dns_result'] != '0') {
|
|
if ($r['dns_result'] == 1) $r['dns_result'] =_("DNS zone is locked, changes will be ignored");
|
|
echo '<p class="alert alert-warning">'; __($r['dns_result']); echo '</p>';
|
|
}
|
|
|
|
?>
|
|
|
|
|
|
<div id="tabsdom">
|
|
|
|
<ul>
|
|
<li class="edit"><a href="#tabsdom-editsub"><?php __("Edit subdomains");?></a></li>
|
|
<li class="add"><a href="#tabsdom-addsub"><?php __("Add subdomains");?></a></li>
|
|
<li class="settings"><a href="#tabsdom-params"><?php __("Settings");?></a></li>
|
|
<?php if ( $r["dns"] ) { ?>
|
|
<li class="view"><a href="#tabsdom-view" onClick="update_dns_content();"><?php __("View");?></a></li>
|
|
<?php } //if gesdns ?>
|
|
<li class="delete"><a href="#tabsdom-delete"><?php __("Delete");?></a></li>
|
|
</ul>
|
|
|
|
|
|
<div id="tabsdom-editsub">
|
|
<h3><?php __("Main subdomains"); ?></h3>
|
|
<?php
|
|
$dt=$dom->domains_type_lst();
|
|
|
|
$problems = $dom->get_problems($domain);
|
|
if ( ! empty($problems) ) {
|
|
echo '<p class="alert alert-danger">';
|
|
foreach ($problems as $p) echo $p."</br>";
|
|
echo "</p>";
|
|
}
|
|
|
|
?>
|
|
<table class="tlist" id="dom_edit_table">
|
|
<thead>
|
|
<tr><th colspan="2"> </th><th><?php __("Subdomain"); ?></th><th><?php __("HTTPS"); ?></th><th><?php __("Type");?></th><th><?php __("Status")?></th><th></th></tr>
|
|
</thead>
|
|
<?php
|
|
$hasadvanced=false;
|
|
// this loop expect the table to be sorted with advanced entries AFTER normal ones :
|
|
for($i=0;$i<$r["nsub"];$i++) {
|
|
if ($r["sub"][$i]["advanced"] && !$hasadvanced) {
|
|
$hasadvanced=true;
|
|
?>
|
|
</table>
|
|
<h3 style="padding: 40px 0 0 0"><?php __("Advanced subdomains"); ?></h3>
|
|
<p class="alert alert-warning"><?php __("The following entries are advanced ones, edit them at your own risks."); ?></p>
|
|
<table class="tlist" id="dom_edit_table">
|
|
<thead>
|
|
<tr><th colspan="2"> </th><th><?php __("Subdomain"); ?></th><th><?php __("HTTPS"); ?></th><th><?php __("Type");?></th><th><?php __("Status")?></th><th></th></tr>
|
|
</thead>
|
|
<?php
|
|
|
|
}
|
|
|
|
$disabled_class=in_array(strtoupper($r['sub'][$i]['enable']),array('DISABLED','DISABLE') )?'sub-disabled':'';
|
|
?>
|
|
<tr class="lst" data-fqdn="<?php echo $r["sub"][$i]["fqdn"]; ?>">
|
|
<?php if ( $r['sub'][$i]['web_action'] =='DELETE') { echo "<td colspan='2' />"; } else { ?>
|
|
<td class="center">
|
|
<?php if (!(!$isinvited && $dt[strtolower($r["sub"][$i]["type"])]["enable"] != "ALL" )) { ?>
|
|
<?php if ( isset($problems[$r["sub"][$i]["fqdn"]])) { // if this subdomain have problem, can't modify it, only delete it
|
|
__("Forbidden");
|
|
} else { ?>
|
|
<div class="ina edit"><a href="dom_subedit.php?sub_domain_id=<?php echo urlencode($r["sub"][$i]["id"]) ?>"><?php __("Edit"); ?></a></div><?php
|
|
} // isset problems
|
|
} ?>
|
|
|
|
|
|
</td><td class="center">
|
|
<?php if (!(!$isinvited && $dt[strtolower($r["sub"][$i]["type"])]["enable"] != "ALL" )) { ?>
|
|
<div class="ina delete"><a href="dom_subdel.php?sub_domain_id=<?php echo urlencode($r["sub"][$i]["id"]) ?>"><?php __("Delete"); ?></a></div>
|
|
<?php } ?>
|
|
</td>
|
|
<?php } // end IF ==DELETE ?>
|
|
<td><div class="retour-auto <?php echo $disabled_class; ?>"><a href="http://<?php echo $r["sub"][$i]["fqdn"] ?>" target="_blank"><?php echo $r["sub"][$i]["fqdn"]; ?></a></div></td>
|
|
<td>
|
|
<?php
|
|
if (!$r["sub"][$i]["only_dns"]) {
|
|
switch ($r["sub"][$i]["https"]) {
|
|
case "http":
|
|
__("HTTP only");
|
|
break;
|
|
case "https":
|
|
__("HTTPS only");
|
|
break;
|
|
case "both":
|
|
__("HTTP and HTTPS");
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
?>
|
|
</td>
|
|
<td><div class="retour-auto <?php echo $disabled_class; ?>"><?php if ($r['sub'][$i]['type_desc']) { __($r['sub'][$i]['type_desc']); } else { echo __("ERROR, please check your server setup"); } ?>
|
|
<?php
|
|
//if ($r["sub"][$i]['type'] === 'VHOST') {
|
|
if ( @$dt[$r["sub"][$i]['type']]['target'] === 'DIRECTORY') {
|
|
$iidir=$r["sub"][$i]["dest"];
|
|
if ($iidir=='') $iidir='/';
|
|
echo '<br /><a href="bro_main.php?R='.urlencode($iidir).'">'.htmlspecialchars($iidir).'</a>';
|
|
if ( ! file_exists($bro->convertabsolute($iidir,0))) { echo " <span class=\"alerte\">"._("Directory not found")."</span>"; }
|
|
} else {
|
|
if ($r["sub"][$i]['type']) echo "<br />".htmlspecialchars($r["sub"][$i]["dest"]);
|
|
}
|
|
?></div></td>
|
|
<td><?php
|
|
if (!(!$isinvited && $dt[strtolower($r["sub"][$i]["type"])]["enable"] != "ALL" )) {
|
|
if ( $r['sub'][$i]['web_action'] !='DELETE') {
|
|
switch ($r['sub'][$i]['enable']) {
|
|
case 'ENABLED':
|
|
__("Enabled");
|
|
echo "<br/><a href='dom_substatus.php?sub_id=".urlencode($r["sub"][$i]["id"])."&status=disable'>";__("Disable");echo "</a>";
|
|
break;
|
|
case 'ENABLE':
|
|
__("Activation pending");
|
|
break;
|
|
case 'DISABLED':
|
|
__("Disabled");
|
|
echo "<br/><a href='dom_substatus.php?sub_id=".urlencode($r["sub"][$i]["id"])."&status=enable'>";__("Enable");echo "</a>";
|
|
break;
|
|
case 'DISABLE':
|
|
__("Desactivation pending");
|
|
break;
|
|
}
|
|
}
|
|
}?></td>
|
|
<td><?php
|
|
switch ($r['sub'][$i]['web_action']) {
|
|
case 'UPDATE':
|
|
__("Update pending");
|
|
break;
|
|
case 'DELETE':
|
|
__("Deletion pending");
|
|
break;
|
|
case 'OK':
|
|
default:
|
|
break;
|
|
}?></td>
|
|
|
|
</tr>
|
|
<?php } ?>
|
|
</table>
|
|
<?php
|
|
// Add a class on the sub_domains who have a problem
|
|
foreach ($problems as $pr => $lm) { // $problems can be empty but can't be null/false
|
|
echo "<script type='text/javascript'>$(\"tr[data-fqdn='".$pr."']\").addClass('alert-danger-tr');</script>\n";
|
|
}
|
|
?>
|
|
|
|
<p> </p>
|
|
<hr />
|
|
<p>
|
|
<a class="inb ssl" href="dom_sslpref.php?domain=<?php ehe($domain); ?>"><?php __("HTTPS Preferences for this domain");?></a>
|
|
</p>
|
|
|
|
|
|
</div> <!-- tabsdom-editsub -->
|
|
|
|
|
|
<div id="tabsdom-addsub">
|
|
<h3><?php printf(_("Add a subdomain to %s"),$domain); ?></h3>
|
|
<?php
|
|
$isedit=false;
|
|
require_once('dom_edit.inc.php');
|
|
sub_domains_edit($domain);
|
|
?>
|
|
<br />
|
|
<?php $mem->show_help("edit_domain"); ?>
|
|
<!-- DNS SETTINGS -->
|
|
|
|
</div>
|
|
<?php
|
|
if (!$r['noerase']) {
|
|
?>
|
|
|
|
<div id="tabsdom-params">
|
|
<h3><?php __("DNS & Email parameters"); ?></h3>
|
|
<form action="dom_editdns.php?domain=<?php echo urlencode($r["name"]) ?>" method="post" id="fdns" name="fdns" onSubmit="return destruction_alert();">
|
|
<?php csrf_get(); ?>
|
|
<table class="tlist2">
|
|
<tr>
|
|
<td><?php __("Manage the DNS on the server ?"); ?></td>
|
|
<td>
|
|
<input type="radio" id="yesdns" class="inc" name="dns" value="1"<?php cbox($r["dns"]); ?> /> <label for="yesdns"><?php __("Yes"); ?></label>
|
|
</td><td><input type="radio" id="nodns" class="inc" name="dns" value="0"<?php cbox(!$r["dns"]); ?> /> <label for="nodns"><?php __("No"); ?></label>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<?php if ($r["dns"]) { ?>
|
|
<table class="tlist2">
|
|
<tr>
|
|
<td><?php __("Define TTL for the zone records"); ?> : </td>
|
|
<td>
|
|
<input type="text" id="ttldns" class="inc" name="ttl" size="6" value="<?php ehe($r["zonettl"]); ?>" /> <?php __("seconds"); ?> <small><i><?php __("Warning: a low TTL can be problematic. It is recommended not to use a lower TTL than 3600 seconds."); ?></i></small>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<?php } ?>
|
|
|
|
<table class="tlist2">
|
|
<tr>
|
|
<td>
|
|
<?php __("Manage the Emails Addresses of this domain on the server?"); ?>
|
|
</td>
|
|
<td>
|
|
<input type="radio" id="yesemail" class="inc" name="email" value="1"<?php cbox($r["mail"]); ?> /> <label for="yesemail"><?php __("Yes"); ?></label>
|
|
</td><td><input type="radio" id="noemail" class="inc" name="email" value="0"<?php cbox(!$r["mail"]); ?> /> <label for="noemail"><?php __("No"); ?></label>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p class="alert alert-warning"> <?php __("Warning: If you set this to 'no', all your email accounts and aliases on this domain will be immediately deleted."); ?></p>
|
|
<input type="submit" class="inb ok" name="submit" value="<?php __("Submit the changes"); ?>" />
|
|
</form>
|
|
|
|
</div>
|
|
<?php } else { ?>
|
|
<div id="tabsdom-params">
|
|
<p class="alert alert-info"><?php __("This domain is locked, only a server administrator can unlock it."); ?></p>
|
|
</div>
|
|
<?php } ?>
|
|
|
|
<?php if ( $r["dns"] ) { ?>
|
|
<div id="tabsdom-view">
|
|
<p>
|
|
<?php __("Here is the actual DNS zone running on the AlternC server. If you just made some changes, you have to wait for it."); ?>
|
|
</p>
|
|
|
|
<div>
|
|
<pre><span class="petit" id="divdumpdns">
|
|
<a target="_blank" href="dom_dnsdump.php?domain=<?php echo urlencode($domain) ?>"><?php __("Click here to view the dump");?></a>
|
|
</span>
|
|
</pre>
|
|
</div>
|
|
|
|
<p> </p>
|
|
<p><a class="inb" href="javascript:force_update_dns_content();"><?php __("Refresh");?></a></p>
|
|
|
|
</div>
|
|
<?php } // if dns ?>
|
|
<?php
|
|
if (!$r['noerase']) {
|
|
?>
|
|
|
|
<div id="tabsdom-delete">
|
|
<h3><?php __("Domain removal"); ?></h3>
|
|
<?php printf(_("If you want to destroy the domain %s, click on the button below. Warning: this also deletes all FTP accounts, email, mailing lists associated with the domain and subdomains."),$domain); ?><br />
|
|
<form action="dom_dodel.php?domain=<?php echo urlencode($domain) ?>" method="post">
|
|
<?php csrf_get(); ?>
|
|
<p>
|
|
<input type="submit" class="inb delete" name="detruire" value="<?php printf(_("Delete %s from this server"),$domain); ?>" />
|
|
</p>
|
|
</form>
|
|
</div> <!-- tabsdom-delete -->
|
|
<?php } else { // noerase
|
|
?>
|
|
<div id="tabsdom-delete">
|
|
<p class="alert alert-info"><?php __("This domain is locked, only a server administrator can unlock it."); ?></p>
|
|
</div>
|
|
<?php
|
|
} ?>
|
|
|
|
<div id="tabsdom-ssl">
|
|
<div id="sslpref">
|
|
</div>
|
|
</div> <!-- tabsdom-ssl -->
|
|
|
|
</div> <!-- tabsdom -->
|
|
<script type="text/javascript">
|
|
|
|
$(function() {
|
|
$("#tabsdom").tabs();
|
|
});
|
|
|
|
get_dns_content = 1;
|
|
function update_dns_content(){
|
|
if ( get_dns_content == 1 ) {
|
|
get_dns_content = 0;
|
|
|
|
$.ajax({
|
|
url: "dom_dnsdump.php?domain=<?php echo urlencode($domain)?>",
|
|
}).done(function( html ) {
|
|
$("#divdumpdns").html(html);
|
|
});
|
|
}
|
|
}
|
|
|
|
function update_ssl_content(){
|
|
$.ajax({
|
|
url: "dom_ssl.inc.php?domain=<?php echo urlencode($domain)?>",
|
|
}).done(function( html ) {
|
|
$("#sslpref").html(html);
|
|
});
|
|
}
|
|
|
|
function force_update_dns_content(){
|
|
get_dns_content = 1;
|
|
$("#divdumpdns").html('In progress...');
|
|
update_dns_content();
|
|
}
|
|
|
|
$(document).ready(function()
|
|
{
|
|
$("#dom_edit_table").tablesorter();
|
|
}
|
|
);
|
|
|
|
</script>
|
|
<?php include_once("foot.php"); ?>
|