From 5dd3d8d080b56d742de3c4b4782cfcde72c3f16f Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Sat, 28 Apr 2012 02:21:57 +0200 Subject: Updating the library to the new LDAP schema. --- lib/Fripost/Schema/Search.pm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'lib/Fripost/Schema/Search.pm') diff --git a/lib/Fripost/Schema/Search.pm b/lib/Fripost/Schema/Search.pm index 3dc2efa..67815bd 100644 --- a/lib/Fripost/Schema/Search.pm +++ b/lib/Fripost/Schema/Search.pm @@ -5,6 +5,7 @@ use warnings; use strict; use Fripost::Schema::Type; +use Fripost::Schema::Utils; use base qw/Net::LDAP::Search/; our $VERSION = '0.01'; @@ -41,9 +42,10 @@ sub entries { sub _userEntry { my $entry = shift; my %user; - &_get_values( $entry, \%user, 'username', 'uid'); + $user{username} = Fripost::Schema::Utils::fromDN ($entry->dn); + &_get_values( $entry, \%user, 'uid'); map { &_get_values($entry, \%user, $_) } - qw /maildir isActive userPassword/; + qw /isActive userPassword/; return \%user; } @@ -56,7 +58,7 @@ sub _domainEntry { if (defined $domain{owner}) { $domain{owner} = [ $domain{owner} ] unless (ref $domain{owner}) eq 'ARRAY'; - $domain{owner} = [ map { (split /=/, (split /,/, $_, 2)[0], 2)[1] } + $domain{owner} = [ map { Fripost::Schema::Utils::fromDN($_) } @{$domain{owner}} ]; } return \%domain; @@ -65,10 +67,14 @@ sub _domainEntry { sub _aliasEntry { my $entry = shift; my %alias; + my $domain = (split /=/, (split /,/, $entry->dn, 3)[1], 2)[1]; + &_get_values( $entry, \%alias, 'address', 'mailLocalAddress'); if (defined $alias{address}) { $alias{address} = [ $alias{address} ] unless (ref $alias{address}) eq 'ARRAY'; + $alias{address} = [ map { $_ . '@' . $domain } + @{$alias{address}} ]; } &_get_values( $entry, \%alias, 'goto', 'mailTarget'); &_get_values( $entry, \%alias, 'isActive'); -- cgit v1.2.3