App-Addex-AddressBook-LDAP
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/App/Addex/AddressBook/LDAP.pm view on Meta::CPAN
use Modern::Perl;
package App::Addex::AddressBook::LDAP;
BEGIN {
$App::Addex::AddressBook::LDAP::VERSION = '0.001';
}
# ABSTRACT: LDAP address book for App::Addex
use parent 'App::Addex::AddressBook';
use App::Addex::Entry;
use App::Addex::Entry::EmailAddress;
use Carp;
use Net::LDAP;
use URI;
sub new {
my ($class, $arg) = @_;
my $uri = URI->new($arg->{uri});
my $self = bless {
uri => $uri,
} => $class;
my $ldap = Net::LDAP->new(
"$uri",
raw => qr/(?i:^jpegPhoto|;binary)/,
onerror => 'die'
) or confess $@;
$ldap->bind();
$self->{ldap} = $ldap;
return $self;
}
sub _entrify {
my ($self, $entry) = @_;
my @emails = map { App::Addex::Entry::EmailAddress->new($_) }
$entry->get_value('mail');
return unless @emails;
return App::Addex::Entry->new(
{
name => $entry->get_value('cn'),
nick => $entry->get_value('uid'),
emails => \@emails,
}
);
}
sub entries {
my ($self) = @_;
my $mesg = $self->{ldap}->search(
base => $self->{uri}->dn,
filter => $self->{uri}->filter,
scope => $self->{uri}->scope,
);
view all matches for this distributionview release on metacpan - search on metacpan
( run in 1.097 second using v1.00-cache-2.02-grep-82fe00e-cpan-1925d2aa809 )