Handle hostnames with upper-case letters
[webmin.git] / itsecur-firewall / edit_group.cgi
1 #!/usr/bin/perl
2 # edit_group.cgi
3 # Show a form for editing or creating a group of hosts or nets
4
5 require './itsecur-lib.pl';
6 &can_use_error("groups");
7 &ReadParse();
8 if ($in{'new'}) {
9         &header($text{'group_title1'}, "",
10                 undef, undef, undef, undef, &apply_button());
11         }
12 else {
13         &header($text{'group_title2'}, "",
14                 undef, undef, undef, undef, &apply_button());
15         @groups = &list_groups();
16         if (defined($in{'idx'})) {
17                 $group = $groups[$in{'idx'}];
18                 }
19         else {
20                 ($group) = grep { $_->{'name'} eq $in{'name'} } @groups;
21                 $in{'idx'} = $group->{'index'};
22                 }
23         }
24 print "<hr>\n";
25
26 print "<form action=save_group.cgi>\n";
27 print "<input type=hidden name=new value='$in{'new'}'>\n";
28 print "<input type=hidden name=idx value='$in{'idx'}'>\n";
29 print "<input type=hidden name=from value='$in{'from'}'>\n";
30 print "<table border>\n";
31 print "<tr $tb> <td><b>$text{'group_header'}</b></td> </tr>\n";
32 print "<tr $cb> <td><table>\n";
33
34 print "<tr> <td><b>$text{'group_name'}</b></td>\n";
35 printf "<td><input name=name size=20 value='%s'></td> </tr>\n",
36         $group->{'name'};
37
38 print "<tr> <td valign=top><b>$text{'group_members'}</b></td>\n";
39 print "<td><table>\n";
40 $i = 0;
41 foreach $m (( grep { !/\!?\@/ } @{$group->{'members'}} ),
42             $blank, $blank, $blank, $blank, $blank, $blank) {
43         $neg = ($m =~ s/^\!//);
44         print "<input name=member_$i size=40 value='$m'>\n";
45         print "<input type=checkbox name=neg_$i value=! ",
46               $neg ? "checked" : "","> $text{'group_neg'}<br>\n";
47         $i++;
48         }
49 print "</table>\n";
50 print "<input type=checkbox name=resolv value=1> $text{'group_resolv'}\n";
51 print "</td> </tr>\n";
52
53 # Show member groups
54 print "<tr> <td valign=top><b>$text{'group_members2'}</b></td>\n";
55 print "<td><table>\n";
56 $i = 0;
57 foreach $m (( grep { /\!?\@/ } @{$group->{'members'}} ),
58             $blank, $blank, $blank, $blank, $blank, $blank) {
59         $neg = ($m =~ s/^\!//);
60         $m =~ s/^\@//;
61         print "<tr> <td>\n";
62         print &group_input("group_$i", $m, 1);
63         print "</td> </tr>\n";
64         $i++;
65         }
66 print "</table></td> </tr>\n";
67
68 print "</table></td></tr></table>\n";
69 if ($in{'new'}) {
70         print "<input type=submit value='$text{'create'}'>\n";
71         }
72 else {
73         print "<input type=submit value='$text{'save'}'>\n";
74         print "<input type=submit name=delete value='$text{'delete'}'>\n";
75         }
76 print "</form>\n";
77 &can_edit_disable("groups");
78
79 print "<hr>\n";
80 $from = $in{'from'} || "groups";
81 &footer("list_${from}.cgi", $text{$from.'_return'});
82