File: move_zone.cgi

package info (click to toggle)
webmin-extra 1.180-4
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 12,324 kB
  • ctags: 1,200
  • sloc: perl: 39,117; makefile: 125
file content (34 lines) | stat: -rwxr-xr-x 992 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/local/bin/perl
# move_zone.cgi
# Move a zone to a different view

require './bind-lib.pl';
&ReadParse();
$pconf = &get_config_parent();
$conf = $pconf->{'members'};
$nconf = $conf->[$in{'newview'}];
if ($in{'view'} ne '') {
	$view = $conf->[$in{'view'}];
	$conf = $view->{'members'};
	}
$zconf = $conf->[$in{'index'}];
%access = &get_module_acl();
&can_edit_zone(\%access, $zconf, $view) || &error($text{'master_ecannot'});
$in{'view'} ne $in{'newview'} || &error($text{'master_emove'});
&can_edit_view(\%access, $nconf) || &error($text{'master_eview'});

# Delete from the view
&lock_file(&make_chroot($zconf->{'file'}));
&save_directive($pconf, [ $zconf ], [ ], 0);
&flush_file_lines();
&unlock_file(&make_chroot($zconf->{'file'}));

# Create in new view
&lock_file(&make_chroot($nconf->{'file'}));
&save_directive($nconf, undef, [ $zconf ], 1);
&flush_file_lines();
&unlock_file(&make_chroot($nconf->{'file'}));
&webmin_log("move", undef, $zconf->{'value'}, \%in);

&redirect("");