Handle hostnames with upper-case letters
[webmin.git] / majordomo / save_access.cgi
1 #!/usr/local/bin/perl
2 # save_access.cgi
3 # Save access control options
4
5 require './majordomo-lib.pl';
6 &ReadParse();
7 %access = &get_module_acl();
8 &can_edit_list(\%access, $in{'name'}) || &error($text{'edit_ecannot'});
9 $list = &get_list($in{'name'}, &get_config());
10 &lock_file($list->{'config'});
11 $conf = &get_list_config($list->{'config'});
12 &save_choice($conf, $list->{'config'}, "get_access");
13 &save_choice($conf, $list->{'config'}, "index_access");
14 &save_choice($conf, $list->{'config'}, "info_access");
15 &save_choice($conf, $list->{'config'}, "intro_access");
16 &save_choice($conf, $list->{'config'}, "which_access");
17 &save_choice($conf, $list->{'config'}, "who_access");
18 $in{'adv'} =~ s/\r//g;
19 if ($in{'adv_mode'} == 0) {
20         $adv = $noadv = "";
21         }
22 elsif ($in{'adv_mode'} == 1) {
23         $adv = $in{'adv'};
24         $noadv = "";
25         }
26 else {
27         $adv = "";
28         $noadv = $in{'adv'};
29         }
30 &save_list_directive($conf, $list->{'config'}, "advertise", $adv, 1);
31 &save_list_directive($conf, $list->{'config'}, "noadvertise", $noadv, 1);
32 &save_list_directive($conf, $list->{'config'}, "restrict_post",
33                      $in{'res_mode'} == 0 ? "" :
34                      $in{'res_mode'} == 1 ? $in{'name'} :
35                                             $in{'res'});
36 &save_multi($conf, $list->{'config'}, "taboo_body");
37 &save_multi($conf, $list->{'config'}, "taboo_headers");
38 &flush_file_lines();
39 &unlock_file($list->{'config'});
40 &webmin_log("access", undef, $in{'name'}, \%in);
41 &redirect("edit_list.cgi?name=$in{'name'}");
42