mirror of
https://github.com/webmin/webmin.git
synced 2026-03-20 16:50:24 +00:00
Handle different format for base directive in NSLCD http://virtualmin.com/node/36531
This commit is contained in:
@@ -8,8 +8,18 @@ $conf = &get_config();
|
||||
print &ui_form_start("save_base.cgi", "post");
|
||||
print &ui_table_start($text{'base_header'}, "width=100%", 2);
|
||||
|
||||
@bases = &find_value("base", $conf);
|
||||
|
||||
if (&get_ldap_client() eq "nss") {
|
||||
# Base is just one directive
|
||||
$base = $bases[0];
|
||||
}
|
||||
else {
|
||||
# Default base is the one with no DB
|
||||
($base) = grep { /^\S+$/ } @bases;
|
||||
}
|
||||
print &ui_table_row($text{'base_base'},
|
||||
&ui_textbox("base", &find_svalue("base", $conf), 50)."\n".
|
||||
&ui_textbox("base", $base, 50)."\n".
|
||||
&base_chooser_button("base", 0));
|
||||
|
||||
$scopes = [ [ "", $text{'default'} ],
|
||||
@@ -25,7 +35,14 @@ print &ui_table_row($text{'base_timelimit'},
|
||||
|
||||
$sp = " " x 5;
|
||||
foreach $b (@base_types) {
|
||||
local $base = &find_svalue("nss_base_".$b, $conf);
|
||||
local $base;
|
||||
if (&get_ldap_client() eq "nss") {
|
||||
$base = &find_svalue("nss_base_".$b, $conf);
|
||||
}
|
||||
else {
|
||||
($base) = map { /^\S+\s+(\S+)/; $1 }
|
||||
grep { /^\Q$b\E\s/ } @bases;
|
||||
}
|
||||
local ($scope, $filter);
|
||||
if ($base =~ /^(.*)\?(.*)\?(.*)$/) {
|
||||
$base = $1;
|
||||
|
||||
@@ -10,7 +10,7 @@ $conf = &get_config();
|
||||
|
||||
# Validate and save inputs, starting with global base
|
||||
$in{'base'} =~ /\S/ || &error($text{'base_ebase'});
|
||||
&save_directive($conf, "base", $in{'base'});
|
||||
@bases = ( $in{'base'} );
|
||||
|
||||
# Save scope
|
||||
&save_directive($conf, "scope", $in{'scope'} || undef);
|
||||
@@ -26,11 +26,12 @@ else {
|
||||
|
||||
# Save per-service bases
|
||||
foreach $b (@base_types) {
|
||||
local $base;
|
||||
if ($in{"base_".$b."_def"}) {
|
||||
&save_directive($conf, "nss_base_".$b, undef);
|
||||
$base = undef;
|
||||
}
|
||||
else {
|
||||
local $base = $in{"base_".$b};
|
||||
$base = $in{"base_".$b};
|
||||
$base =~ /\S/ || &error($text{'base_e'.$b});
|
||||
if ($in{'scope_'.$b}) {
|
||||
$base .= "?".$in{'scope_'.$b};
|
||||
@@ -39,10 +40,20 @@ foreach $b (@base_types) {
|
||||
$base .= "?" if ($in{'scope_'.$b});
|
||||
$file .= "?".$in{'filter_'.$b};
|
||||
}
|
||||
}
|
||||
if (&get_ldap_client() eq "nss") {
|
||||
# Update DB-specific directive
|
||||
&save_directive($conf, "nss_base_".$b, $base);
|
||||
}
|
||||
else {
|
||||
# Add to list of base directives to save
|
||||
push(@bases, $b." ".$base) if ($base);
|
||||
}
|
||||
}
|
||||
|
||||
# Save all base directives
|
||||
&save_directive($conf, "base", \@bases);
|
||||
|
||||
# Write out config
|
||||
&flush_file_lines();
|
||||
&unlock_file(&get_ldap_config_file());
|
||||
|
||||
Reference in New Issue
Block a user