Handle hostnames with upper-case letters
[webmin.git] / proftpd / edit_lserv.cgi
1 #!/usr/local/bin/perl
2 # edit_dserv.cgi
3 # Edit <Limit> section details
4
5 require './proftpd-lib.pl';
6 &ReadParse();
7 if ($in{'file'}) {
8         $conf = &get_ftpaccess_config($in{'file'});
9         }
10 else {
11         if ($in{'global'}) {
12                 $conf = &get_config();
13                 $conf = &get_or_create_global($conf);
14                 }
15         else {
16                 ($conf, $v) = &get_virtual_config($in{'virt'});
17                 }
18         if ($in{'anon'}) {
19                 $anon = &find_directive_struct("Anonymous", $conf);
20                 $conf = $anon->{'members'};
21                 }
22         if ($in{'idx'} ne '') {
23                 $dir = $conf->[$in{'idx'}];
24                 $conf = $dir->{'members'};
25                 }
26         }
27 $l = $conf->[$in{'limit'}];
28 $ln = $l->{'value'};
29 $desc = $in{'file'} ? &text('limit_header6', $ln, &html_escape($in{'file'})) :
30         $dir ? &text('limit_header4', $ln, $dir->{'words'}->[0]) :
31         $in{'global'} ? &text('limit_header7', $ln) :
32         $in{'anon'} ? &text('limit_header5', $ln) :
33         $in{'virt'} ? &text('limit_header1', $ln, $v->{'words'}->[0]) :
34         &text('limit_header2', $ln);
35 &ui_print_header($desc, $text{'lserv_title'}, "",
36         undef, undef, undef, undef, &restart_button());
37
38 print "<form action=save_lserv.cgi>\n";
39 print "<input type=hidden name=virt value='$in{'virt'}'>\n";
40 print "<input type=hidden name=idx value='$in{'idx'}'>\n";
41 print "<input type=hidden name=limit value='$in{'limit'}'>\n";
42 print "<input type=hidden name=anon value='$in{'anon'}'>\n";
43 print "<input type=hidden name=global value='$in{'global'}'>\n";
44 print "<input type=hidden name=file value='$in{'file'}'>\n";
45 print "<table border>\n";
46 print "<tr $tb> <td><b>$text{'lserv_title'}</b></td> </tr>\n";
47 print "<tr $cb> <td><table>\n";
48
49 map { $cmd{lc($_)}++ } @{$l->{'words'}};
50 print "<tr> <td valign=top><b>$text{'lserv_cmd'}</b></td>\n";
51 print "<td><select name=cmd multiple size=7 width=120>\n";
52 foreach $c ('cwd', 'mkd', 'rnfr', 'dele', 'rmd', 'retr', 'stor') {
53         printf "<option value=%s %s>%s\n",
54                 uc($c), $cmd{$c} ? "selected" : "", uc($c);
55         }
56 print "</select><select name=cmd multiple size=7 width=120>\n";
57 foreach $c ('site_chmod', 'read', 'write', 'dirs', 'login', 'all') {
58         printf "<option value=%s %s>%s\n",
59                 uc($c), $cmd{$c} ? "selected" : "", uc($c);
60         }
61 print "</select></td> </tr>\n";
62
63 print "<tr> <td colspan=2 align=right>\n";
64 print "<input type=submit value=\"$text{'save'}\">\n";
65 print "<input type=submit name=delete value=\"$text{'lserv_delete'}\">\n";
66 print "</td> </tr>\n";
67
68 print "</table> </td></tr></table><p>\n";
69 print "</form>\n";
70
71 if ($in{'file'}) {
72         &ui_print_footer("limit_index.cgi?file=$in{'file'}&limit=$in{'limit'}",
73                 $text{'limit_return'},
74                 "ftpaccess_index.cgi?file=$in{'file'}",$text{'ftpindex_return'},
75                 "ftpaccess.cgi", $text{'ftpaccess_return'},
76                 "", $text{'index_return'});
77         }
78 elsif ($in{'idx'} eq '') {
79         if ($in{'global'}) {
80                 &ui_print_footer("limit_index.cgi?limit=$in{'limit'}&global=$in{'global'}",
81                         $text{'limit_return'},
82                         "", $text{'index_return'});
83                 }
84         elsif ($in{'anon'}) {
85                 &ui_print_footer("limit_index.cgi?virt=$in{'virt'}&limit=$in{'limit'}&anon=$in{'anon'}",
86                         $text{'limit_return'},
87                         "anon_index.cgi?virt=$in{'virt'}",$text{'anon_return'},
88                         "virt_index.cgi?virt=$in{'virt'}",$text{'virt_return'},
89                         "", $text{'index_return'});
90                 }
91         else {
92                 &ui_print_footer("limit_index.cgi?virt=$in{'virt'}&limit=$in{'limit'}",
93                         $text{'limit_return'},
94                         "virt_index.cgi?virt=$in{'virt'}",$text{'virt_return'},
95                         "", $text{'index_return'});
96                 }
97         }
98 else {
99         if ($in{'global'}) {
100                 &ui_print_footer("limit_index.cgi?limit=$in{'limit'}&idx=$in{'idx'}&global=$in{'global'}",
101                         $text{'limit_return'},
102                         "dir_index.cgi?idx=$in{'idx'}&global=$in{'global'}",
103                         $text{'dir_return'},
104                         "", $text{'index_return'});
105                 }
106         elsif ($in{'anon'}) {
107                 &ui_print_footer("limit_index.cgi?virt=$in{'virt'}&limit=$in{'limit'}&idx=$in{'idx'}&anon=$in{'anon'}",
108                         $text{'limit_return'},
109                         "dir_index.cgi?virt=$in{'virt'}&idx=$in{'idx'}&anon=$in{'anon'}", $text{'dir_return'},
110                         "anon_index.cgi?virt=$in{'virt'}",$text{'anon_return'},
111                         "virt_index.cgi?virt=$in{'virt'}",$text{'virt_return'},
112                         "", $text{'index_return'});
113                 }
114         else {
115                 &ui_print_footer("limit_index.cgi?virt=$in{'virt'}&limit=$in{'limit'}&idx=$in{'idx'}",
116                         $text{'limit_return'},
117                         "dir_index.cgi?virt=$in{'virt'}&idx=$in{'idx'}&anon=$in{'anon'}", $text{'dir_return'},
118                         "virt_index.cgi?virt=$in{'virt'}",$text{'virt_return'},
119                         "", $text{'index_return'});
120                 }
121         }