mirror of
https://github.com/webmin/webmin.git
synced 2025-08-17 19:06:28 +00:00
43 lines
1.1 KiB
Perl
Executable File
43 lines
1.1 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# Update, add or delete an inherited package directory
|
|
|
|
require './zones-lib.pl';
|
|
do 'forms-lib.pl';
|
|
&ReadParse();
|
|
$zinfo = &get_zone($in{'zone'});
|
|
$zinfo || &error($text{'edit_egone'});
|
|
if (!$in{'new'}) {
|
|
# Find the directory
|
|
($pkg) = grep { $_->{'dir'} eq $in{'old'} }
|
|
@{$zinfo->{'inherit-pkg-dir'}};
|
|
$pkg || &error($text{'pkg_egone'});
|
|
}
|
|
$pkg ||= { 'keytype' => 'inherit-pkg-dir' };
|
|
|
|
if ($in{'delete'}) {
|
|
# Just remove this dir
|
|
&delete_zone_object($zinfo, $pkg);
|
|
}
|
|
else {
|
|
# Validate inputs
|
|
$form = &get_pkg_form(\%in, $zinfo, $pkg);
|
|
$form->validate_redirect("edit_pkg.cgi");
|
|
$pkg->{'dir'} = $form->get_value("dir");
|
|
&find_clash($zinfo, $pkg) &&
|
|
$form->validate_redirect("edit_pkg.cgi",
|
|
[ [ "dir", $text{'pkg_eclash'} ] ]);
|
|
|
|
# Save the zone settings
|
|
if ($in{'new'}) {
|
|
&create_zone_object($zinfo, $pkg);
|
|
}
|
|
else {
|
|
&modify_zone_object($zinfo, $pkg);
|
|
}
|
|
}
|
|
|
|
&webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "modify",
|
|
"pkg", $in{'old'} || $pkg->{'dir'}, $pkg);
|
|
&redirect("edit_zone.cgi?zone=$in{'zone'}");
|
|
|