Net::LDAP::Batch::Action - base class for LDAP actions


Net-LDAP-Batch documentation Contained in the Net-LDAP-Batch distribution.

Index


Code Index:

NAME

Top

Net::LDAP::Batch::Action - base class for LDAP actions

SYNOPSIS

Top

 use Net::LDAP::Batch::Action;
 my $action = Net::LDAP::Batch::Action->new(
            {
                ldap => $net_ldap_object,
            });
 $action->execute or $action->rollback;




DESCRIPTION

Top

This is a base class for batch actions.

NOTE: Net::LDAP::Batch::Action objects will croak() if anything unusual happens. This approach assumes that Catastrophic Failure is a Good Thing. So use eval() if you need to catch exceptions.

METHODS

Top

new( hash_ref )

Overrides base Class::Accessor::Fast constructor to call init().

This class defines the following accessor methods, all of which can be set via new() or by themselves.

ldap

entry

complete

debug

init

Confirms that the ldap() accessor returns a Net::LDAP-derived object.

execute

Perform the action. Default behaviour is to croak indicating you must override the method in your subclass.

rollback

Undo the action. Default behaviour is to croak indicating you must override the method in your subclass.

get_ldap_err( ldap_msg )

Returns the stringified error message for the ldap_msg object.

AUTHOR

Top

Peter Karman, <karman at cpan.org>

BUGS

Top

Please report any bugs or feature requests to bug-net-ldap-batch at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-LDAP-Batch. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc Net::LDAP::Batch

You can also look for information at:

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/Net-LDAP-Batch

* CPAN Ratings

http://cpanratings.perl.org/d/Net-LDAP-Batch

* RT: CPAN's request tracker

http://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-LDAP-Batch

* Search CPAN

http://search.cpan.org/dist/Net-LDAP-Batch

ACKNOWLEDGEMENTS

Top

The Minnesota Supercomputing Institute http://www.msi.umn.edu/ sponsored the development of this software.

COPYRIGHT

Top

SEE ALSO

Top

Net::LDAP::Batch


Net-LDAP-Batch documentation Contained in the Net-LDAP-Batch distribution.
package Net::LDAP::Batch::Action;
use strict;
use warnings;
use Carp;
use base qw( Class::Accessor::Fast );

our $VERSION = '0.02';

__PACKAGE__->mk_accessors(qw( ldap entry complete debug ));

sub new {
    my $class = shift;
    my $self  = $class->SUPER::new(@_);
    $self->init;
    return $self;
}

sub init {
    my $self = shift;
    if ( !$self->ldap or !$self->ldap->isa('Net::LDAP') ) {
        croak "Net::LDAP object required";
    }
    $self->debug(1) if $ENV{PERL_DEBUG};
    return $self;
}

sub execute { croak "must override execute()" }

sub rollback { croak "must override rollback()" }

sub get_ldap_err {
    my $self = shift;
    my $msg  = shift or croak "ldap_msg required";
    my $str  = "\n"
        . join( "\n",
        "Return code: " . $msg->code,
        "Message: " . $msg->error_name,
        " :" . $msg->error_text,
        "MessageID: " . $msg->mesg_id,
        "DN: " . $msg->dn,
        ) . "\n";
    return $str;
}

1;

__END__