Handle hostnames with upper-case letters
[webmin.git] / ldap-client / save_base.cgi
1 #!/usr/local/bin/perl
2 # Save the LDAP search base
3
4 require './ldap-client-lib.pl';
5 &error_setup($text{'base_err'});
6 &ReadParse();
7
8 &lock_file($config{'auth_ldap'});
9 $conf = &get_config();
10
11 # Validate and save inputs, starting with global base
12 $in{'base'} =~ /\S/ || &error($text{'base_ebase'});
13 &save_directive($conf, "base", $in{'base'});
14
15 # Save scope
16 &save_directive($conf, "scope", $in{'scope'} || undef);
17
18 # Save time limit
19 if ($in{'timelimit_def'}) {
20         &save_directive($conf, "timelimit", undef);
21         }
22 else {
23         $in{'timelimit'} =~ /^\d+$/ || &error($text{'base_etimelimit'});
24         &save_directive($conf, "timelimit", $in{'timelimit'});
25         }
26
27 # Save per-service bases
28 foreach $b (@base_types) {
29         if ($in{"base_".$b."_def"}) {
30                 &save_directive($conf, "nss_base_".$b, undef);
31                 }
32         else {
33                 local $base = $in{"base_".$b};
34                 $base =~ /\S/ || &error($text{'base_e'.$b});
35                 if ($in{'scope_'.$b}) {
36                         $base .= "?".$in{'scope_'.$b};
37                         }
38                 if ($in{'filter_'.$b}) {
39                         $base .= "?" if ($in{'scope_'.$b});
40                         $file .= "?".$in{'filter_'.$b};
41                         }
42                 &save_directive($conf, "nss_base_".$b, $base);
43                 }
44         }
45
46 # Write out config
47 &flush_file_lines();
48 &unlock_file($config{'auth_ldap'});
49
50 &webmin_log("base");
51 &redirect("");
52