Handle hostnames with upper-case letters
[webmin.git] / proftpd / edit_limit.cgi
1 #!/usr/local/bin/perl
2 # edit_limit.cgi
3 # Display a form for editing some kind of limit section options
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 $conf = $l->{'members'};
29 $ln = $l->{'value'};
30
31 @dirs = &editable_directives($in{'type'}, 'limit');
32 $desc = $in{'file'} ? &text('limit_header6', $ln, &html_escape($in{'file'})) :
33         $dir ? &text('limit_header4', $ln, $dir->{'words'}->[0]) :
34         $in{'global'} ? &text('limit_header7', $ln) :
35         $in{'anon'} ? &text('limit_header5', $ln) :
36         $in{'virt'} ? &text('limit_header1', $ln, $v->{'words'}->[0]) :
37         &text('limit_header2', $ln);
38 &ui_print_header($desc, $text{"type_$in{'type'}"}, "",
39         undef, undef, undef, undef, &restart_button());
40
41 print "<form method=post action=save_limit.cgi method=post>\n";
42 print "<input type=hidden name=type value='$in{'type'}'>\n";
43 print "<input type=hidden name=idx value='$in{'idx'}'>\n";
44 print "<input type=hidden name=limit value='$in{'limit'}'>\n";
45 print "<input type=hidden name=virt value='$in{'virt'}'>\n";
46 print "<input type=hidden name=anon value='$in{'anon'}'>\n";
47 print "<input type=hidden name=global value='$in{'global'}'>\n";
48 print "<input type=hidden name=file value='$in{'file'}'>\n";
49 print "<table border width=100%>\n";
50 print "<tr $tb> <td><b>",&text('limit_header3', $text{"type_$in{'type'}"},
51                                $l->{'value'}),"</b></td> </tr>\n";
52 print "<tr $cb> <td><table>\n";
53 &generate_inputs(\@dirs, $conf);
54 print "</table></td> </tr></table>\n";
55 print "<input type=submit value=\"$text{'save'}\"></form>\n";
56
57 if ($in{'file'}) {
58         &ui_print_footer("limit_index.cgi?file=$in{'file'}&limit=$in{'limit'}",
59                 $text{'limit_return'},
60                 "ftpaccess_index.cgi?file=$in{'file'}",$text{'ftpindex_return'},
61                 "ftpaccess.cgi", $text{'ftpaccess_return'},
62                 "", $text{'index_return'});
63         }
64 elsif ($in{'idx'} eq '') {
65         if ($in{'global'}) {
66                 &ui_print_footer("limit_index.cgi?limit=$in{'limit'}&global=$in{'global'}",
67                         $text{'limit_return'},
68                         "", $text{'index_return'});
69                 }
70         elsif ($in{'anon'}) {
71                 &ui_print_footer("limit_index.cgi?virt=$in{'virt'}&limit=$in{'limit'}&anon=$in{'anon'}",
72                         $text{'limit_return'},
73                         "anon_index.cgi?virt=$in{'virt'}",$text{'anon_return'},
74                         "virt_index.cgi?virt=$in{'virt'}",$text{'virt_return'},
75                         "", $text{'index_return'});
76                 }
77         else {
78                 &ui_print_footer("limit_index.cgi?virt=$in{'virt'}&limit=$in{'limit'}",
79                         $text{'limit_return'},
80                         "virt_index.cgi?virt=$in{'virt'}",$text{'virt_return'},
81                         "", $text{'index_return'});
82                 }
83         }
84 else {
85         if ($in{'global'}) {
86                 &ui_print_footer("limit_index.cgi?limit=$in{'limit'}&idx=$in{'idx'}&global=$in{'global'}",
87                         $text{'limit_return'},
88                         "dir_index.cgi?idx=$in{'idx'}&global=$in{'global'}",
89                         $text{'dir_return'},
90                         "", $text{'index_return'});
91                 }
92         elsif ($in{'anon'}) {
93                 &ui_print_footer("limit_index.cgi?virt=$in{'virt'}&limit=$in{'limit'}&idx=$in{'idx'}&anon=$in{'anon'}",
94                         $text{'limit_return'},
95                         "dir_index.cgi?virt=$in{'virt'}&idx=$in{'idx'}&anon=$in{'anon'}", $text{'dir_return'},
96                         "anon_index.cgi?virt=$in{'virt'}",$text{'anon_return'},
97                         "virt_index.cgi?virt=$in{'virt'}",$text{'virt_return'},
98                         "", $text{'index_return'});
99                 }
100         else {
101                 &ui_print_footer("limit_index.cgi?virt=$in{'virt'}&limit=$in{'limit'}&idx=$in{'idx'}",
102                         $text{'limit_return'},
103                         "dir_index.cgi?virt=$in{'virt'}&idx=$in{'idx'}&anon=$in{'anon'}", $text{'dir_return'},
104                         "virt_index.cgi?virt=$in{'virt'}",$text{'virt_return'},
105                         "", $text{'index_return'});
106                 }
107         }
108