2 # Show a form for editing or creating a rule list section separator
4 require './itsecur-lib.pl';
5 &can_use_error("rules");
7 @rules = &list_rules();
9 &header(defined($in{'insert'}) ? $text{'sep_title3'}
10 : $text{'sep_title1'}, "",
11 undef, undef, undef, undef, &apply_button());
12 $rule = { 'index' => scalar(@rules) };
15 &header($text{'sep_title2'}, "",
16 undef, undef, undef, undef, &apply_button());
17 $rule = $rules[$in{'idx'}];
21 print "<form action=save_sep.cgi>\n";
22 print "<input type=hidden name=new value='$in{'new'}'>\n";
23 print "<input type=hidden name=idx value='$in{'idx'}'>\n";
24 print "<input type=hidden name=insert value='$in{'insert'}'>\n";
25 print "<table border>\n";
26 print "<tr $tb> <td><b>$text{'sep_header'}</b></td> </tr>\n";
27 print "<tr $cb> <td><table>\n";
29 # Show separator title
30 print "<tr> <td valign=top><b>$text{'sep_desc'}</b></td> <td>\n";
31 printf "<input name=desc size=60 value='%s'></td> </tr>\n",
32 $rule->{'desc'} eq "*" ? "" : $rule->{'desc'};
34 # Show input for position of rule
35 print "<tr> <td><b>$text{'rule_atpos'}</b></td> <td>\n";
36 print "<select name=pos>\n";
37 foreach $br (@rules) {
38 next if ($br eq $rule);
40 printf "<option value=%s %s>%s\n",
43 $rule->{'index'} == $br->{'index'}-1 ? "selected" : "",
44 &text('rule_spos', $br->{'desc'});
47 printf "<option value=%s %s>%s\n",
50 $rule->{'index'} == $br->{'index'}-1 ? "selected" : "",
51 &text('rule_pos', $br->{'num'},
52 &group_name($br->{'source'}),
53 &group_name($br->{'dest'}));
56 printf "<option value=%s %s>%s\n",
57 -1, $in{'new'} || $rule eq $rules[$#rules] ? "selected" : "",
59 print "</select></td> </tr>\n";
61 print "</table></td></tr></table>\n";
63 print "<input type=submit value='$text{'create'}'>\n";
66 print "<input type=submit value='$text{'save'}'>\n";
67 print "<input type=submit name=delete value='$text{'delete'}'>\n";
70 &can_edit_disable("rules");
73 &footer("list_rules.cgi", $text{'rules_return'});