Sunone does allow per user admin limits but AD does not. You can change the 
limits but it is global (if I remember correctly). Also, were you thinking 
Redmond not Richmond? :)

Don

----- Original Message -----
From: Vartak, Yash V <[EMAIL PROTECTED]>
To: Justin Alcorn <[EMAIL PROTECTED]>
Cc: perl-ldap@perl.org <perl-ldap@perl.org>
Sent: Tue Jul 01 17:55:10 2008
Subject: RE: Net::LDAP :: Admin limit on AD (Work around)

Thanks Justin that works :D

Just a question that pop up in my mind, can we have admin limits
determined by user, that's have admin limit based on user.

e.g : If you bind as a "directory manager" no admin limit applies but if
you bind in as "average joe" .. admin limit <eq> 250 entries
anon bind --> 10 entries
Something on similar lines, 

As far as I know Tivoli directory server, Critical Path directory server
allows that, but config is pretty clumsy and this setting could have a
messy effect if you have chaining ... replication ..etc configured as
this config affects the all the DSA on that directory not just a single
DSA. 

But have doubts if Gorilla from Richmond (Microsoft) ;) or Sun One
allows that.

Regards,

Yash Vartak


-----Original Message-----
From: Justin Alcorn [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 01, 2008 9:07 PM
To: Vartak, Yash V
Cc: perl-ldap@perl.org
Subject: Re: Net::LDAP :: Admin limit on AD (Work around)

AD does support paged results.  This code is basically cut from an
example I found, and I use this structure:

my $page = Net::LDAP::Control::Paged->new( size => 100 );
my $cookie;
my $count = 0;
while (1) {
        $mesg = $ldap->search(
                base => "DC=example,DC=com",
                filter => "(objectclass=user)",
                control => [ $page ]
                );
        $mesg->code && die  "Error on search: $@ : ".$mesg->error;
         while ($adentry = $mesg->pop_entry()) {
                //process
         }
        my($resp)  = $mesg->control( LDAP_CONTROL_PAGED ) or last;
        $cookie    = $resp->cookie or last;
        # Paging Control
        $page->cookie($cookie);
}
if ($cookie) {
        print "abnormal exit\n";
   # We had an abnormal exit, so let the server know we do not want any
more
   $page->cookie($cookie);
   $page->size(0);
   $ldap->search( control => [ $page ] );
}



On Tue, Jul 1, 2008 at 3:23 AM, Chris Ridd <[EMAIL PROTECTED]> wrote:
>
> On 1 Jul 2008, at 07:52, Vartak, Yash V wrote:
>
>> Hey Chris I have tried that
>>
>> but it returns exactly no that a page size is set to, If you set the
>> page size to a value greater than admin limit it would return the
amount
>> of entries <eq> to admin limit.
>>
>> logically I need the flow need to go this way
>>
>> {search first 999 entries}
>>   <do processing>
>>  {search next 1000 - 1999 entries}
>>        <do processing>
>>    ... continues till the time all the entries are processed
>>
>> What I am missing out is how to leave a pointer at 999 th entry
>>
>> Looks like I am making some mistake while implementing
>> Net::LDAP::Control::Paged
>
> Possibly. The man page shows you the loop that you have to write to
get each
> page, which involves retrieving a cookie and reusing it in the next
search,
> ie your "pointer". Did you also check if AD supports Paged Results?
>
> Cheers,
>
> Chris
>



-- 
--
Justin B. Alcorn

Reply via email to