Handle hostnames with upper-case letters
[webmin.git] / ldap-client / save_pam.cgi
1 #!/usr/local/bin/perl
2 # Save the LDAP server to connect to
3
4 require './ldap-client-lib.pl';
5 &error_setup($text{'server_err'});
6 &ReadParse();
7
8 &lock_file($config{'auth_ldap'});
9 $conf = &get_config();
10
11 # Validate and save inputs, starting with filter
12 if ($in{'filter_def'}) {
13         &save_directive($conf, "pam_filter", undef);
14         }
15 else {
16         $in{'filter'} =~ /\S/ || &error($text{'pam_efilter'});
17         &save_directive($conf, "pam_filter", $in{'filter'});
18         }
19
20 # Save login attribute
21 if ($in{'login_def'}) {
22         &save_directive($conf, "pam_login_attribute", undef);
23         }
24 else {
25         $in{'login'} =~ /^\S+$/ || &error($text{'pam_elogin'});
26         &save_directive($conf, "pam_login_attribute", $in{'login'});
27         }
28
29 # Save group DN
30 if ($in{'groupdn_def'}) {
31         &save_directive($conf, "pam_groupdn", undef);
32         }
33 else {
34         $in{'groupdn'} =~ /\S/ || &error($text{'pam_egroupdn'});
35         &save_directive($conf, "pam_groupdn", $in{'groupdn'});
36         }
37
38 # Save group member attribute
39 if ($in{'member_def'}) {
40         &save_directive($conf, "pam_member_attribute", undef);
41         }
42 else {
43         $in{'member'} =~ /^\S+$/ || &error($text{'pam_emember'});
44         &save_directive($conf, "pam_member_attribute", $in{'member'});
45         }
46
47 # Save password mode
48 &save_directive($conf, "pam_password", $in{'password'} || undef);
49
50 # Write out config
51 &flush_file_lines();
52 &unlock_file($config{'auth_ldap'});
53
54 &webmin_log("pam");
55 &redirect("");
56