Handle hostnames with upper-case letters
[webmin.git] / pserver / save_access.cgi
1 #!/usr/local/bin/perl
2 # save_access.cgi
3 # Save readers and writers lists
4
5 require './pserver-lib.pl';
6 $access{'access'} || &error($text{'access_ecannot'});
7 &ReadParse();
8 &error_setup($text{'access_err'});
9
10 &lock_file($readers_file);
11 @passwd = &list_passwords();
12 %gotuser = map { $_->{'user'}, 1 } @passwd;
13 if ($in{'readers_def'}) {
14         unlink($readers_file);
15         }
16 else {
17         @readers = split(/\s+/, $in{'readers'});
18         foreach $r (@readers) {
19                 defined(getpwnam($r)) || $gotuser{$r} ||
20                         &error(&text('access_euser', $r));
21                 }
22         &open_tempfile(READERS, ">$readers_file");
23         foreach $r (@readers) {
24                 &print_tempfile(READERS, $r,"\n");
25                 }
26         &close_tempfile(READERS);
27         }
28 &unlock_file($readers_file);
29
30 &lock_file($writers_file);
31 if ($in{'writers_def'}) {
32         unlink($writers_file);
33         }
34 else {
35         @writers = split(/\s+/, $in{'writers'});
36         foreach $r (@writers) {
37                 defined(getpwnam($r)) || $gotuser{$r} ||
38                         &error(&text('access_euser', $r));
39                 }
40         &open_tempfile(WRITERS, ">$writers_file");
41         foreach $r (@writers) {
42                 &print_tempfile(WRITERS, $r,"\n");
43                 }
44         &close_tempfile(WRITERS);
45         }
46 &unlock_file($writers_file);
47 &webmin_log("access");
48
49 &redirect("");
50