summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivan <ivan>2002-11-20 21:13:54 +0000
committerivan <ivan>2002-11-20 21:13:54 +0000
commita8557c424b395af6c4342ca3d16bf4d000a212e8 (patch)
tree241c52c0eb90edc75e6545f9f81388804258fa60
parented59ba354bf498a5ead83d79c86f424961cfaaf7 (diff)
add objectclass and ability to have multiple comma-separated values to LDAP
export
-rw-r--r--FS/FS/part_export.pm1
-rw-r--r--FS/FS/part_export/ldap.pm5
2 files changed, 6 insertions, 0 deletions
diff --git a/FS/FS/part_export.pm b/FS/FS/part_export.pm
index e587cad6c..1e5470e55 100644
--- a/FS/FS/part_export.pm
+++ b/FS/FS/part_export.pm
@@ -745,6 +745,7 @@ tie my %ldap_options, 'Tie::IxHash',
'userpassword $crypt_password',
'hint',
'answer $sec_phrase',
+ 'objectclass top,person,inetOrgPerson',
),
},
'radius' => { label=>'Export RADIUS attributes', type=>'checkbox', },
diff --git a/FS/FS/part_export/ldap.pm b/FS/FS/part_export/ldap.pm
index 6ff9abe12..a28504313 100644
--- a/FS/FS/part_export/ldap.pm
+++ b/FS/FS/part_export/ldap.pm
@@ -208,7 +208,12 @@ sub ldap_queue {
sub ldap_insert { #subroutine, not method
my $ldap = ldap_connect(shift, (my $dn = shift), shift);
my( $username_attrib, %attrib ) = @_;
+
$dn = "$username_attrib=$attrib{$username_attrib}, $dn" if $username_attrib;
+ #icky hack, but should be unsurprising to the LDAPers
+ foreach my $key ( grep { $attrib{$_} =~ /,/ } keys %attrib ) {
+ $attrib{$key} = [ split(/,/, $attrib{$key}) ];
+ }
my $status = $ldap->add( $dn, attrs => [ %attrib ] );
die $status->error if $status->is_error;