Handle hostnames with upper-case letters
[webmin.git] / webmin / change_overlay.cgi
1 #!/usr/local/bin/perl
2 # Change the current webmin theme overlay
3
4 require './webmin-lib.pl';
5 &ReadParse();
6 &error_setup($text{'themes_err4'});
7
8 # Get the overlay and make sure it is compatible
9 ($gtheme) = split(/\s+/, $gconfig{'theme'});
10 if ($in{'overlay'}) {
11         %oinfo = &get_theme_info($in{'overlay'});
12         if ($oinfo{'overlays'} &&
13             &indexof($gtheme, split(/\s+/, $oinfo{'overlays'})) < 0) {
14                 &error($text{'themes_eoverlay'});
15                 }
16         }
17
18 &lock_file("$config_directory/config");
19 if ($in{'overlay'}) {
20         $gconfig{'theme'} = join(" ", $gtheme, $in{'overlay'});
21         }
22 else {
23         $gconfig{'theme'} = $gtheme;
24         }
25 &write_file("$config_directory/config", \%gconfig);
26 &unlock_file("$config_directory/config");
27
28 &lock_file($ENV{'MINISERV_CONFIG'});
29 &get_miniserv_config(\%miniserv);
30 if ($in{'overlay'}) {
31         $miniserv{'preroot'} = join(" ", $gtheme, $in{'overlay'});
32         }
33 else {
34         $miniserv{'preroot'} = $gtheme;
35         }
36 &put_miniserv_config(\%miniserv);
37 &unlock_file($ENV{'MINISERV_CONFIG'});
38 &reload_miniserv();
39
40 &webmin_log('theme', undef, undef, \%in);
41 &ui_print_header(undef, $text{'themes_title'}, "");
42 print "$text{'themes_ok2'}<p>\n";
43 print &js_redirect("/", "top");
44 &ui_print_footer("", $text{'index_return'});
45