Handle hostnames with upper-case letters
[webmin.git] / itsecur-firewall / save_sep.cgi
1 #!/usr/bin/perl
2 # Create, update or delete a rules section separator
3
4 require './itsecur-lib.pl';
5 &can_edit_error("rules");
6 &ReadParse();
7 @rules = &list_rules();
8 if (!$in{'new'}) {
9         $rule = $rules[$in{'idx'}];
10         }
11 &lock_itsecur_files();
12
13 if ($in{'delete'}) {
14         # Just take out rule
15         splice(@rules, $in{'idx'}, 1);
16         }
17 else {
18         # Validate and store inputs
19         &error_setup($text{'sep_err'});
20         $in{'desc'} || &error($text{'sep_edesc'});
21         $rule->{'desc'} = $in{'desc'};
22         $rule->{'sep'} = 1;
23
24         if ($in{'new'}) {
25                 # Add to list at chosen position
26                 if ($in{'pos'} == -1) {
27                         push(@rules, $rule);
28                         }
29                 else {
30                         splice(@rules, $in{'pos'}, 0, $rule);
31                         }
32                 }
33         else {
34                 # Maybe change position
35                 foreach $r (grep { $_ ne $rule } @rules) {
36                         if ($r->{'index'} == $in{'pos'}) {
37                                 push(@newrules, $rule);
38                                 }
39                         push(@newrules, $r);
40                         }
41                 push(@newrules, $rule) if ($in{'pos'} == -1);
42                 @rules = @newrules;
43                 }
44         }
45
46 # Save rules list
47 &save_rules(@rules);
48 &unlock_itsecur_files();
49 &remote_webmin_log($in{'delete'} ? "delete" : $in{'new'} ? "create" : "update",
50             "sep", $rule->{'index'}+1, $rule);
51 &redirect("list_rules.cgi");
52