The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Catalyst::Model::LDAP::Connection - Convenience methods for Net::LDAP

DESCRIPTION

Subclass of Net::LDAP, which adds paging support and an additional method to rebless the entries. See Catalyst::Model::LDAP::Entry for more information.

OVERRIDING METHODS

If you want to override methods provided by Net::LDAP, you can use the connection_class configuration variable. For example:

    # In lib/MyApp/Model/LDAP.pm
    package MyApp::Model::LDAP;
    use base qw/Catalyst::Model::LDAP/;

    __PACKAGE__->config(
        # ...
        connection_class => 'MyApp::LDAP::Connection',
    );

    1;

    # In lib/MyApp/LDAP/Connection.pm
    package MyApp::LDAP::Connection;
    use base qw/Catalyst::Model::LDAP::Connection/;
    use Authen::SASL;

    sub bind {
        my ($self, @args) = @_;

        my $sasl = Authen::SASL->new(...);
        push @args, sasl => $sasl;

        $self->SUPER::bind(@args);
    }

    1;

METHODS

new

Create a new connection to the specific LDAP server.

    my $conn = Catalyst::Model::LDAP::Connection->new(
        host => 'ldap.ufl.edu',
        base => 'ou=People,dc=ufl,dc=edu',
    );

bind

Bind to the configured LDAP server using the specified credentials.

    $conn->bind(
        dn       => 'uid=dwc,ou=People,dc=ufl,dc=edu',
        password => 'secret',
    );

Search the configured directory using a given filter. For example:

    my $mesg = $c->model('Person')->search('(cn=Lou Rhodes)');
    my $entry = $mesg->shift_entry;
    print $entry->title;

This method overrides the search method in Net::LDAP to add paging support. The following additional options are supported:

page

Which page to return.

rows

Rows to return per page. Defaults to 25.

order_by

Sort the records (on the server) by the specified attribute. Required if you use page.

When paging is active, this method returns the server response and a Data::Page object. Otherwise, it returns the server response only.

SEE ALSO

AUTHORS

  • Daniel Westermann-Clark

  • Marcus Ramberg (paging support)

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.