Handle hostnames with upper-case letters
[webmin.git] / usermin / index.cgi
1 #!/usr/local/bin/perl
2 # index.cgi
3 # Display usermin configuration categories
4
5 require './usermin-lib.pl';
6
7 if (!-r "$config{'usermin_dir'}/miniserv.conf") {
8         &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
9         print "<p>",&text('index_econfig', "<tt>$config{'usermin_dir'}</tt>",
10                           "$gconfig{'webprefix'}/config.cgi?$module_name"),"<p>\n";
11         if ($config{'usermin_dir'} eq $standard_usermin_dir) {
12                 local $mode;
13                 if (&foreign_check("software")) {
14                         local %sconfig = &foreign_config("software");
15                         $mode = $sconfig{'package_system'} eq 'rpm' ? 'rpm' :
16                                 $sconfig{'package_system'} eq 'dpkg' ? 'deb' :
17                                                                        undef;
18                         }
19                 print "$text{'index_install'}<br>\n";
20                 print "<center><form action=upgrade.cgi method=post enctype=multipart/form-data>\n";
21                 print "<input type=hidden name=install value=1>\n";
22                 print "<input type=hidden name=source value=2>\n";
23                 print "<input type=hidden name=mode value='$mode'>\n";
24                 print "<input type=submit value='",
25                     ($mode ? $text{'index_'.$mode} : $text{'index_tgz'}),"'>\n";
26                 print "</form></center>\n";
27                 }
28         &ui_print_footer("/", $text{'index'});
29         exit;
30         }
31 elsif (&same_file($config{'usermin_dir'}, $config_directory)) {
32         &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
33
34         print "<p>",&text('index_esame', "<tt>$config{'usermin_dir'}</tt>",
35                   "$gconfig{'webprefix'}/config.cgi?$module_name"),"<p>\n";
36
37         &ui_print_footer("/", $text{'index'});
38         exit;
39         }
40 &get_usermin_miniserv_config(\%miniserv);
41 if (!$miniserv{'root'} && !-d $miniserv{'root'}) {
42         &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1);
43
44         print "<p>",&text('index_eroot', "<tt>$config{'usermin_dir'}</tt>",
45                           "<tt>$miniserv{'root'}</tt>"),"<p>\n";
46
47         &ui_print_footer("/", $text{'index'});
48         exit;
49         }
50
51 $ver = &get_usermin_version();
52 &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1, 0,
53         &help_search_link("usermin", "google"), undef, undef,
54         &text('index_version', $ver));
55
56 @links = ( "edit_access.cgi",
57            "edit_bind.cgi",
58            "edit_ui.cgi",
59            "edit_mods.cgi",
60            "edit_os.cgi",
61            "edit_lang.cgi",
62            "edit_upgrade.cgi",
63            "edit_session.cgi",
64            "edit_assignment.cgi",
65            "edit_categories.cgi",
66            "edit_descs.cgi",
67            "edit_themes.cgi",
68            "edit_referers.cgi",
69            "edit_anon.cgi",
70            "edit_ssl.cgi",
71            "list_configs.cgi",
72            "edit_acl.cgi",
73            $ver < 0.942 ? ( ) : ( "list_restrict.cgi" ),
74            $ver < 0.76 ? ( ) : ( "edit_users.cgi",
75                                  "edit_defacl.cgi" ),
76            $ver < 1.164 ? ( ) : ( "edit_logout.cgi" ),
77            $ver < 1.181 ? ( ) : ( "edit_dav.cgi" ),
78            $miniserv{'session'} ? ( "list_sessions.cgi" ) : ( ),
79            "edit_blocked.cgi",
80            "edit_mobile.cgi",
81            "edit_advanced.cgi" );
82 @titles = map { /_(\S+).cgi/; $text{"${1}_title"} } @links;
83 @icons = map { /_(\S+).cgi/; "images/$1.gif" } @links;
84 for($i=0; $i<@links; $i++) {
85         $links[$i] =~ /_(\S+).cgi/;
86         $page = $1 eq "mods" ? "umods" : $1;
87         if (!$access{$page}) {
88                 splice(@links, $i, 1);
89                 splice(@titles, $i, 1);
90                 splice(@icons, $i, 1);
91                 }
92         }
93
94 &icons_table(\@links, \@titles, \@icons);
95
96 $init = &foreign_check("init") && $access{'bootup'};
97 print &ui_hr();
98
99 print &ui_buttons_start();
100
101 if ($access{'stop'}) {
102         &get_usermin_miniserv_config(\%miniserv);
103         if (&check_pid_file($miniserv{'pidfile'})) {
104                 print &ui_buttons_row("stop.cgi",
105                         $text{'index_stop'}, $text{'index_stopmsg'});
106                 }
107         else {
108                 print &ui_buttons_row("start.cgi",
109                         $text{'index_start'}, $text{'index_startmsg'});
110                 }
111         }
112
113 if ($init) {
114         print "<tr>\n";
115         &foreign_require("init", "init-lib.pl");
116         $starting = &init::action_status("usermin");
117
118         print &ui_buttons_row("bootup.cgi",
119                 $text{'index_boot'}, $text{'index_bootmsg'},
120                 &ui_hidden("starting", $starting),
121                 &ui_radio("boot", $starting == 2 ? 1 : 0,
122                           [ [ 1, $text{'yes'} ],
123                             [ 0, $text{'no'} ] ]));
124         }
125
126 &get_usermin_miniserv_config(\%miniserv);
127 if (&check_pid_file($miniserv{'pidfile'})) {
128         print &ui_buttons_row("restart.cgi",
129                 $text{'index_restart'}, $text{'index_restartmsg'});
130         }
131
132 print &ui_buttons_end();
133
134 &ui_print_footer("/", $text{'index'});