Handle hostnames with upper-case letters
[webmin.git] / wuftpd / save_anon.cgi
1 #!/usr/local/bin/perl
2 # save_anon.cgi
3 # Save anonymous FTP
4
5 require './wuftpd-lib.pl';
6 &error_setup($text{'anon_err'});
7 &ReadParse();
8 &lock_file($config{'ftpaccess'});
9 $conf = &get_ftpaccess();
10
11 # save anonymous-root options
12 for($i=0; defined($dir = $in{"dir_$i"}); $i++) {
13         next if (!$dir);
14         -d $dir || &error(&text('anon_edir', $dir));
15         push(@aroot, { 'name' => 'anonymous-root',
16                        'values' => [ $dir, $in{"class_$i"} ] } );
17         }
18 &save_directive($conf, 'anonymous-root', \@aroot);
19
20 #save guest-root options
21 for($i=0; defined($dir = $in{"gdir_$i"}); $i++) {
22         next if (!$dir);
23         -d $dir || &error(&text('anon_edir', $dir));
24         push(@groot, { 'name' => 'guest-root',
25                        'values' => [ $dir, $in{"uids_$i"} ] } );
26         }
27 &save_directive($conf, 'guest-root', \@groot);
28
29 # save autogroup options
30 for($i=0; defined($agroup = $in{"agroup_$i"}); $i++) {
31         next if (!$agroup);
32         defined(getgrnam($agroup)) || &error(&text('anon_egroup', $agroup));
33         push(@agroup, { 'name' => 'autogroup',
34                         'values' => [ $agroup,
35                                       split(/\0/, $in{"aclass_$i"}) ] } );
36         }
37 &save_directive($conf, 'autogroup', \@agroup);
38
39 # save other options
40 if ($in{'passwd_def'}) {
41         &save_directive($conf, 'passwd-check', [ ]);
42         }
43 else {
44         &save_directive($conf, 'passwd-check',
45                         [ { 'name' => 'passwd-check',
46                             'values' => [ $in{'level'}, $in{'action'} ] } ] );
47         }
48 foreach $a (split(/\s+/, $in{'email'})) {
49         push(@email, { 'name' => 'deny-email', 'values' => [ $a ] } );
50         }
51 &save_directive($conf, 'deny-email', \@email);
52
53 &flush_file_lines();
54 &unlock_file($config{'ftpaccess'});
55 &webmin_log("anon", undef, undef, \%in);
56 &redirect("");