Handle hostnames with upper-case letters
[webmin.git] / usermin / save_uconfigs.cgi
1 #!/usr/local/bin/perl
2 # save_uconfigs.cgi
3 # Save default user inputs from edit_configs.cgi
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 $m = $in{'mod'};
11 &error_setup($text{'config_err'});
12 &get_usermin_miniserv_config(\%miniserv);
13
14 mkdir("$config{'usermin_dir'}/$m", 0700);
15 &lock_file("$config{'usermin_dir'}/$m/uconfig");
16 &read_file("$config{'usermin_dir'}/$m/uconfig", \%uconfig);
17
18 &parse_config(\%uconfig, "$miniserv{'root'}/$m/uconfig.info");
19
20 &write_file("$config{'usermin_dir'}/$m/uconfig", \%uconfig);
21 &unlock_file("$config{'usermin_dir'}/$m/uconfig");
22
23 # Save the preferences config as well
24 mkdir("$config{'usermin_dir'}/$m", 0700);
25 &lock_file("$config{'usermin_dir'}/$m/config");
26 &read_file("$config{'usermin_dir'}/$m/config", \%mconfig);
27 $mconfig{'noprefs'} = $in{'noprefs'} == 1 ? 1 : 0;
28 &write_file("$config{'usermin_dir'}/$m/config", \%mconfig);
29 &unlock_file("$config{'usermin_dir'}/$m/config");
30
31 # Save allowed options
32 %canconfig = map { $_, 1 } split(/\0/, $in{'_can'});
33 $canfile = "$config{'usermin_dir'}/$in{'mod'}/canconfig";
34 if ($in{'noprefs'} == 2) {
35         # Save allowed list
36         &write_file($canfile, \%canconfig);
37         }
38 else {
39         # All are allowed (or denied)
40         &unlink_file($canfile);
41         }
42
43 &webmin_log("uconfig", undef, undef, \%in);
44 &redirect("list_configs.cgi");
45