#!/usr/local/bin/perl # Delete a bunch of zones, after asking for confirmation require './bind8-lib.pl'; &ReadParse(); $conf = &get_config(); if ($in{'update'}) { # Redirect to mass update form &redirect("mass_update_form.cgi?". join("&", map { "d=".&urlize($_) } split(/\0/, $in{'d'}))); exit; } elsif ($in{'create'}) { # Redirect to mass create form &redirect("mass_rcreate_form.cgi?". join("&", map { "d=".&urlize($_) } split(/\0/, $in{'d'}))); exit; } # Get the zones foreach $d (split(/\0/, $in{'d'})) { ($idx, $viewidx) = split(/\s+/, $d); if ($viewidx ne '') { $view = $conf->[$viewidx]; $zconf = $view->{'members'}->[$idx]; } else { $zconf = $conf->[$idx]; } &can_edit_zone($zconf, $view) || &error($text{'master_edelete'}); push(@zones, [ $zconf, $view ]); push(@znames, $zconf->{'value'}); } $access{'ro'} && &error($text{'master_ero'}); $access{'delete'} || &error($text{'master_edeletecannot'}); if (!$in{'confirm'}) { # Ask the user if he is sure &ui_print_header(undef, $text{'massdelete_title'}, ""); print &ui_form_start("mass_delete.cgi", "post"); foreach $d (split(/\0/, $in{'d'})) { print &ui_hidden("d", $d),"\n"; } print "
\n"; print &ui_submit($text{'massdelete_ok'}, "confirm"),"
\n";
@servers = &list_slave_servers();
if (@servers && $access{'remote'}) {
print $text{'delete_onslave'},"\n";
print &ui_yesno_radio("onslave", 1),"
\n";
}
print "
\n";
# Also delete from slave servers
if ($in{'onslave'} && $access{'remote'}) {
print &text('massdelete_slaves',
$zconf->{'value'}),"
\n";
@slaveerrs = &delete_on_slaves($zconf->{'value'});
if (@slaveerrs) {
print $text{'massdelete_failed'},"
\n";
foreach $s (@slaveerrs) {
print "$s->[0]->{'host'} : $s->[1]
\n";
}
print "
\n"; } else { print $text{'massdelete_done'},"
\n"; } } } &flush_file_lines(); &unlock_all_files(); &webmin_log("delete", "zones", scalar(@zones)); &ui_print_footer("", $text{'index_return'}); }