Catalyst-Model-LDAP
view release on metacpan or search on metacpan
lib/Catalyst/Model/LDAP/Entry.pm view on Meta::CPAN
=encoding UTF-8
=head1 NAME
Catalyst::Model::LDAP::Entry - Convenience methods for Net::LDAP::Entry
=head1 VERSION
version 0.21
=head1 SYNOPSIS
# In your controller
my $mesg = $c->model('Person')->search('(cn=Lou Rhodes)');
my $entry = $mesg->shift_entry;
print $entry->title;
=head1 DESCRIPTION
This module simplifies use of L<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;
=head1 ADDING ENTRY METHODS
If you want to provide your own methods on an LDAP entry, you can use
the C<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;
=head1 METHODS
=head2 new
Override the L<Net::LDAP::Entry> object constructor to take an
optional LDAP handle. If provided this will be used automatically on
L</update>.
=head2 update
Override C<update> to default to the optional LDAP handle provided to
the constructor.
=head2 can
Override C<can> to declare existence of the LDAP entry attribute
methods from C<AUTOLOAD>.
=head1 SEE ALSO
=over 4
=item * L<Catalyst::Model::LDAP>
=item * L<Catalyst::Model::LDAP::Search>
=back
=head1 AUTHORS
=over 4
=item * Marcus Ramberg
=back
=head1 LICENSE
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=head1 AUTHOR
Gavin Henry <ghenry@surevoip.co.uk>
=head1 COPYRIGHT AND LICENSE
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.
( run in 1.239 second using v1.01-cache-2.11-cpan-ceb78f64989 )