From ea06aa8c41d103ff161630fd85d083b9ed6f0b41 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Mon, 28 May 2012 14:27:08 +0200 Subject: More flexible use of wildcards on usernames. --- lib/Fripost/Schema/Search.pm | 28 +++++++++++++++++++++++++--- 1 file changed, 25 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 a9eb2ea..1051a21 100644 --- a/lib/Fripost/Schema/Search.pm +++ b/lib/Fripost/Schema/Search.pm @@ -11,7 +11,20 @@ use base qw/Net::LDAP::Search/; our $VERSION = '0.01'; # Count the entries got out from the query. -sub count { $_[0]->{_res}->count } +sub count { + my $self = shift; + + if (ref $self->{_res} eq 'ARRAY') { + my $count; + foreach (@{$self->{_res}}) { + $count += $_->count; + } + return $count; + } + else { + return $self->{_res}->count; + } +} # Create a hash out of the LDAP entry. Keys depend on the context # of the object. @@ -31,11 +44,20 @@ sub entries { $dumpEntry = "_aliasEntry"; } else { - die "Something weird happened. Please report." + die "Something weird happened. Please report."; } + my @entries; + if (ref $self->{_res} eq 'ARRAY') { + foreach (@{$self->{_res}}) { + push @entries, $_->entries; + } + } + else { + @entries = ($self->{_res}->entries); + } no strict "refs"; - return (map {&$dumpEntry($_)} $self->{_res}->entries); + return (map {&$dumpEntry($_)} @entries); } -- cgit v1.2.3