2 # Update, add or delete an inherited package directory
4 require './zones-lib.pl';
7 $zinfo = &get_zone($in{'zone'});
8 $zinfo || &error($text{'edit_egone'});
11 ($pkg) = grep { $_->{'dir'} eq $in{'old'} }
12 @{$zinfo->{'inherit-pkg-dir'}};
13 $pkg || &error($text{'pkg_egone'});
15 $pkg ||= { 'keytype' => 'inherit-pkg-dir' };
18 # Just remove this dir
19 &delete_zone_object($zinfo, $pkg);
23 $form = &get_pkg_form(\%in, $zinfo, $pkg);
24 $form->validate_redirect("edit_pkg.cgi");
25 $pkg->{'dir'} = $form->get_value("dir");
26 &find_clash($zinfo, $pkg) &&
27 $form->validate_redirect("edit_pkg.cgi",
28 [ [ "dir", $text{'pkg_eclash'} ] ]);
30 # Save the zone settings
32 &create_zone_object($zinfo, $pkg);
35 &modify_zone_object($zinfo, $pkg);
39 &webmin_log($in{'new'} ? "create" : $in{'delete'} ? "delete" : "modify",
40 "pkg", $in{'old'} || $pkg->{'dir'}, $pkg);
41 &redirect("edit_zone.cgi?zone=$in{'zone'}");