Handle hostnames with upper-case letters
[webmin.git] / itsecur-firewall / enable_rules.cgi
1 #!/usr/bin/perl
2 # Enable, disable, log, un-log or delete a bunch of rules
3
4 require './itsecur-lib.pl';
5 &can_edit_error("rules");
6 &ReadParse();
7 @rules = &list_rules();
8 @nums = split(/\0/, $in{'r'});
9
10 &lock_itsecur_files();
11 foreach $n (@nums) {
12         ($r) = grep { $_->{'index'} == $n } @rules;
13         if ($in{'enable'}) {
14                 $r->{'enabled'} = 1;
15                 }
16         elsif ($in{'disable'}) {
17                 $r->{'enabled'} = 0;
18                 }
19         elsif ($in{'logon'}) {
20                 $r->{'log'} = 1;
21                 }
22         elsif ($in{'logoff'}) {
23                 $r->{'log'} = 0;
24                 }
25         elsif ($in{'delete'}) {
26                 @rules = grep { $_ ne $r } @rules;
27                 }
28         }
29
30 &automatic_backup();
31 &save_rules(@rules);
32 &unlock_itsecur_files();
33 &remote_webmin_log($in{'enable'} ? "enable" :
34                    $in{'disable'} ? "disable" :
35                    $in{'logon'} ? "logon" :
36                    $in{'logoff'} ? "logoff" : "delete", "rules", undef,
37                    { 'count' => scalar(@nums) } );
38 &redirect("list_rules.cgi");
39