#!/usr/local/bin/perl
# delete_domain.cgi
# Delete a domain, after asking first
require './virtual-server-lib.pl';
&require_bind() if ($config{'dns'});
&require_useradmin();
&require_mail() if ($config{'mail'});
&ReadParse();
$d = &get_domain($in{'dom'});
$d && $d->{'uid'} && ($d->{'gid'} || $d->{'ugid'}) ||
&error("Domain $in{'dom'} does not exist!");
&can_delete_domain($d) || &error($text{'delete_ecannot'});
if ($in{'confirm'}) {
&ui_print_unbuffered_header(&domain_in($d), $text{'delete_title'}, "");
}
else {
&ui_print_header(&domain_in($d), $text{'delete_title'}, "");
}
@users = &list_domain_users($d, 1);
@aliases = &list_domain_aliases($d, 1);
@subs = &get_domain_by("parent", $d->{'id'});
@aliasdoms = &get_domain_by("alias", $d->{'id'});
@aliasdoms = grep { $_->{'parent'} != $d->{'id'} } @aliasdoms;
if (!$in{'confirm'}) {
# Ask the user if he is sure
print &check_clicks_function();
if ($d->{'unix'}) {
$sz = &disk_usage_kb($d->{'home'});
print "<p>",&text('delete_rusure2', "<tt>$d->{'dom'}</tt>",
&nice_size($sz*1024)),"<p>\n";
}
else {
print "<p>",&text('delete_rusure3', "<tt>$d->{'dom'}</tt>"),"<p>\n";
}
$pfx = $d->{'parent'} ? "sublosing_" : "losing_";
print "<ul>\n";
foreach $f (@features) {
if ($d->{$f} && ($config{$f} || $f eq 'unix')) {
print "<li>",$text{'feature_'.$f}," - ",
$text{$pfx.$f},"<br>\n";
}
}
foreach $f (@feature_plugins) {
if ($d->{$f}) {
print "<li>",&plugin_call($f, "feature_name")," - ",
&plugin_call($f, "feature_losing"),"<br>\n";
}
}
if (@users || @aliases) {
print "<li>",&text('delete_mailboxes', scalar(@users), scalar(@aliases)),"<br>\n";
}
print "</ul>\n";
if (@subs) {
print "<p><font size=+1>",&text('delete_subs',
join(", ", map { "<tt>$_->{'dom'}</tt>" } @subs)),
"</font><p>\n";
}
if (@aliasdoms) {
print "<p><font size=+1>",&text('delete_aliasdoms',
join(", ", map { "<tt>$_->{'dom'}</tt>" } @aliasdoms)),
"</font><p>\n";
}
print "<center><form action=delete_domain.cgi>\n";
print "<input type=hidden name=dom value='$in{'dom'}'>\n";
print "<input type=submit name=confirm ",
"value='$text{'delete_ok'}' onClick='check_clicks(form)'>\n";
if (&can_import_servers() && !$virtualmin_pro) {
print "<p><input type=checkbox name=only value=1> ",
"$text{'delete_only'}<br>\n";
}
print "</form></center>\n";
&ui_print_footer(&domain_footer_link($d),
"", $text{'index_return'});
}
else {
# Go ahead and delete this domain and all sub-domains ..
$in{'only'} = 0 if (!&can_import_servers());
$err = &delete_virtual_server($d, $in{'only'});
&error($err) if ($err);
# Call any theme post command
if (defined(&theme_post_save_domain)) {
&theme_post_save_domain(\%dom, 'delete');
}
&webmin_log("delete", "domain", $d->{'dom'}, $d);
&ui_print_footer("", $text{'index_return'});
}
syntax highlighted by Code2HTML, v. 0.9.1