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

# lib/MyApp/Model/Person.pm
package MyApp::Model::Person;

use base 'Catalyst::Model::LDAP';

__PACKAGE__->config(
    host              => 'ldap.ufl.edu',
    base              => 'ou=People,dc=ufl,dc=edu',
    dn                => '',
    password          => '',
    start_tls         => 1,
    start_tls_options => { verify => 'require' },
    options           => {},  # Options passed to all Net::LDAP methods
                              # (e.g. SASL for bind or sizelimit for
                              # search)
);

1;

# In your controller
my $mesg = $c->model('Person')->search('(cn=Lou Rhodes)');
my @entries = $mesg->entries;
print $entries[0]->get_value('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 and options. It also lets you configure a base DN for searching.

Net::LDAP methods are supported via Perl's AUTOLOAD mechanism. Please refer to the Net::LDAP documentation for information on what's available.

METHODS

new

Create a new Catalyst LDAP model component.

_client

Bind the client using the current configuration and return it. This method is automatically called when you use a Net::LDAP method.

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

_execute

Execute the specified LDAP command. Call the appropriate Net::LDAP methods directly instead of this method. For example:

# In your controller
my $mesg = $c->model('Person')->search('(cn=Andy Barlow)');

SEE ALSO

AUTHORS

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

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

ACKNOWLEDGEMENTS

  • Salih Gonullu, for initial work on Catalyst mailing list

  • Christopher H. Laco, for AUTOLOAD idea

LICENSE

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