MOON
Server: Apache
System: Linux cl1170g 4.19.62-mod-std-ipv6-64-rescue #828825 SMP Tue Jul 30 13:54:49 UTC 2019 x86_64
User: wh0f20bb (1057)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //proc/thread-self/root/root/webmin-1.740/zones/save_rctl.cgi
#!/usr/bin/perl
# Update, add or delete a resource control

require './zones-lib.pl';
do 'forms-lib.pl';
&ReadParse();
$zinfo = &get_zone($in{'zone'});
$zinfo || &error($text{'edit_egone'});
if (!$in{'new'}) {
	# Find the rctl object
	($rctl) = grep { $_->{'name'} eq $in{'old'} } @{$zinfo->{'rctl'}};
	$rctl || &error($text{'rctl_egone'});
	}
else {
	$rctl = { 'keytype' => 'rctl' };
	}

if ($in{'delete'}) {
	# Just remove this resource control
	&delete_zone_object($zinfo, $rctl);
	}
else {
	# Validate inputs
	$form = &get_rctl_form(\%in, $zinfo, $rctl);
	$table = $form->get_section(1);
	$form->validate_redirect("edit_rctl.cgi");
	$rctl->{'name'} = $form->get_value("name");
	@values = ( );
	for($i=0; $i<$table->get_rowcount(); $i++) {
		local ($priv, $limit, $action) = $table->get_values($i);
		if ($priv) {
			push(@values,
			     "(priv=$priv,limit=$limit,action=$action)");
			}
		}
	@values || &error($text{'rctl_evalues'});
	$rctl->{'value'} = join("\0", @values);
	&find_clash($zinfo, $rctl) &&
		$form->validate_redirect("edit_fs.cgi",
			[ [ "name", $text{'rctl_eclash'} ] ]);

	# Save the rctl
	if ($in{'new'}) {
		&create_zone_object($zinfo, $rctl);
		}
	else {
		&modify_zone_object($zinfo, $rctl);
		}
	}

&webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "modify",
	    "rctl", $in{'old'} || $rctl->{'name'}, $rctl);
&redirect("edit_zone.cgi?zone=$in{'zone'}");