Catalyst::Model::LDAP::Entry - Convenience methods for Net::LDAP::Entry
# In your controller
my $mesg = $c->model('Person')->search('(cn=Lou Rhodes)');
my $entry = $mesg->shift_entry;
print $entry->title;
This module simplifies use of Net::LDAP::Entry objects in your application. It
makes accessors and mutators for all attributes on an entry. For example:
print $entry->cn;
It also stores a reference to the parent LDAP connection,
simplifying updates to the entry:
$entry->title('Folk singer');
$entry->update;
If you want to provide your own methods on an LDAP entry, you can use the
"entry_class" configuration variable. For
example:
# In lib/MyApp/Model/LDAP.pm
package MyApp::Model::LDAP;
use base qw/Catalyst::Model::LDAP/;
__PACKAGE__->config(
# ...
entry_class => 'MyApp::LDAP::Entry',
);
1;
# In lib/MyApp/LDAP/Entry.pm
package MyApp::LDAP::Entry;
use base qw/Catalyst::Model::LDAP::Entry/;
use DateTime::Format::Strptime;
sub get_date {
my ($self, $attribute) = @_;
my ($datetime) = ($self->get_value($attribute) =~ /^(\d{14})/);
my $parser = DateTime::Format::Strptime->new(
pattern => '%Y%m%d%H%M%S',
locale => 'en_US',
time_zone => 'UTC'
);
return $parser->parse_datetime($datetime);
}
1;
Override the Net::LDAP::Entry object constructor to take an optional LDAP
handle. If provided this will be used automatically on "update".
Override "update" to default to the optional
LDAP handle provided to the constructor.
Override "can" to declare existence of the
LDAP entry attribute methods from
"AUTOLOAD".
- Catalyst::Model::LDAP
- Catalyst::Model::LDAP::Search
This library is free software; you can redistribute it and/or modify it under
the same terms as Perl itself.
Gavin Henry <ghenry@surevoip.co.uk>
This software is copyright (c) 2017 by Gavin Henry.
This is free software; you can redistribute it and/or modify it
under the same terms as the Perl 5 programming language system itself.