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

NAME

Catalyst::Model::LDAP - LDAP model class for Catalyst

SYNOPSIS

    # Use the Catalyst helper
    script/myapp_create.pl model Person LDAP ldap.ufl.edu ou=People,dc=ufl,dc=edu

    # Or, in lib/MyApp/Model/Person.pm
    package MyApp::Model::Person;

    use base qw/Catalyst::Model::LDAP/;

    __PACKAGE__->config(
        host => 'ldap.ufl.edu',
        base => 'ou=People,dc=ufl,dc=edu',
    );

    1;

    # Then, in your controller
    my $mesg = $c->model('Person')->search('(cn=Lou Rhodes)');
    my @entries = $mesg->entries;
    print $entries[0]->sn;

DESCRIPTION

This is the Net::LDAP model class for Catalyst. It is nothing more than a simple wrapper for Net::LDAP.

This class simplifies LDAP access by letting you configure a common set of bind arguments. It also lets you configure a base DN for searching.

Please refer to the Net::LDAP documentation for information on what else is available.

CONFIGURATION

The following configuration parameters are supported:

  • host

    The LDAP server's fully qualified domain name (FQDN), e.g. ldap.ufl.edu. Can also be an IP address, e.g. 127.0.0.1.

  • base

    The base distinguished name (DN) for searching the directory, e.g. ou=People,dc=ufl,dc=edu.

  • dn

    (Optional) The bind DN for connecting to the directory, e.g. dn=admin,dc=ufl,dc=edu. This can be anyone that has permission to search under the base DN, as per your LDAP server's access control lists.

  • password

    (Optional) The password for the specified bind DN.

  • start_tls

    (Optional) Set to 1 to use TLS when binding to the LDAP server, for secure connections.

  • start_tls_options

    (Optional) A hashref containing options to use when binding using TLS to the LDAP server.

  • options

    (Optional) A hashref containing options to pass to "search" in Catalyst::Model::LDAP::Connection. For example, this can be used to set a sizelimit.

    NOTE: In previous versions, these options were passed to all Net::LDAP methods. This has changed to allow a cleaner connection interface. If you still require this behavior, create a class inheriting from Catalyst::Model::LDAP::Connection that overrides the specific methods and set connection_class.

  • connection_class

    (Optional) The class or package name that wraps Net::LDAP. Defaults to Catalyst::Model::LDAP::Connection.

    See also "OVERRIDING METHODS" in Catalyst::Model::LDAP::Connection.

  • entry_class

    (Optional) The class or package name to rebless Net::LDAP::Entry objects as. Defaults to Catalyst::Model::LDAP::Entry.

    See also "ADDING ENTRY METHODS" in Catalyst::Model::LDAP::Entry.

INTERNAL METHODS

ACCEPT_CONTEXT

Bind the client using the current configuration and return it. This method is automatically called when you use e.g. $c->model('LDAP').

If the start_tls configuration option is present, the client will use the Net::LDAP start_tls method to make your connection secure.

SEE ALSO

AUTHORS

  • Daniel Westermann-Clark <danieltwc@cpan.org>

  • Adam Jacob <holoway@cpan.org> (TLS support)

  • Marcus Ramberg (paging support and entry AUTOLOAD)

ACKNOWLEDGMENTS

  • Salih Gonullu, for initial work on Catalyst mailing list

LICENSE

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