Handle hostnames with upper-case letters
[webmin.git] / usermin / edit_configs.cgi
1 #!/usr/local/bin/perl
2 # edit_configs.cgi
3 # Display the configs for a usermin module
4
5 require './usermin-lib.pl';
6 require '../config-lib.pl';
7 $access{'configs'} || &error($text{'acl_ecannot'});
8 &ReadParse();
9 &can_use_module($in{'mod'}) || &error($text{'configs_ecannot'});
10 &ui_print_header(undef, $text{'configs_title2'}, "");
11 &get_usermin_miniserv_config(\%miniserv);
12
13 # Show start of tabs
14 $prog = "edit_configs.cgi?mod=$in{'mod'}&mode=";
15 if (-r "$miniserv{'root'}/$in{'mod'}/config.info") {
16         push(@tabs, [ "global", $text{'configs_global'}, $prog."global" ]);
17         }
18 if (-r "$miniserv{'root'}/$in{'mod'}/uconfig.info") {
19         push(@tabs, [ "user", $text{'configs_user'}, $prog."user" ]);
20         }
21 print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || $tabs[0]->[0], 1);
22
23 &read_file("$config{'usermin_dir'}/$in{'mod'}/config", \%mconfig);
24 if (-r "$miniserv{'root'}/$in{'mod'}/config.info") {
25         # Display config form for the module
26         print &ui_tabs_start_tab("mode", "global");
27         print $text{'configs_globaldesc'},"<p>\n";
28         %minfo = &get_usermin_module_info($in{'mod'});
29         print &ui_form_start("save_configs.cgi", "post");
30         print &ui_hidden("mod", $in{'mod'}),"\n";
31         print &ui_table_start(&text('config_header', $minfo{'desc'}),
32                               "width=100%", 2);
33
34         # Use config.info to create config inputs
35         &generate_config(\%mconfig, "$miniserv{'root'}/$in{'mod'}/config.info");
36         print &ui_table_end();
37         print &ui_form_end([ [ "save", $text{'save'} ] ]);
38         print &ui_tabs_end_tab();
39         }
40
41 if (-r "$miniserv{'root'}/$in{'mod'}/uconfig.info") {
42         # Display default user config form for the module
43         print &ui_tabs_start_tab("mode", "user");
44         print $text{'configs_userdesc'},"<p>\n";
45         %minfo = &get_usermin_module_info($in{'mod'});
46         print &ui_form_start("save_uconfigs.cgi", "post");
47         print &ui_hidden("mod", $in{'mod'}),"\n";
48         print &ui_table_start(&text('configs_uheader', $minfo{'desc'}),
49                               "width=100%", 2);
50
51         &read_file("$miniserv{'root'}/$in{'mod'}/defaultuconfig", \%uconfig);
52         &read_file("$config{'usermin_dir'}/$in{'mod'}/uconfig", \%uconfig);
53
54         # Can edit prefs?
55         &read_file("$config{'usermin_dir'}/$in{'mod'}/canconfig", \%canconfig);
56         $noprefs = $mconfig{'noprefs'} == 1 ? 1 :
57                    %canconfig ? 2 : 0;
58
59         print &ui_table_row($text{'configs_prefs'},
60                 &ui_radio("noprefs", $noprefs,
61                         [ [ 0, $text{'yes'} ], [ 1, $text{'no'} ],
62                           [ 2, $text{'configs_sels'} ] ]));
63         print &ui_table_hr();
64
65         # Use uconfig.info to create config inputs
66         &generate_config(\%uconfig,
67                          "$miniserv{'root'}/$in{'mod'}/uconfig.info",
68                          undef, $noprefs == 2 ? \%canconfig : undef, "_can");
69         print &ui_table_end();
70         print &ui_form_end([ [ "save", $text{'save'} ] ]);
71         print &ui_tabs_end_tab();
72         }
73
74 print &ui_tabs_end(1);
75
76 &ui_print_footer("list_configs.cgi", $text{'configs_return'});
77