Net::LDAP::Makepath - Provides a methode for creating paths in LDAP simply.


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

Index


Code Index:

NAME

Top

Net::LDAP::Makepath - Provides a methode for creating paths in LDAP simply.

VERSION

Top

Version 1.0.1

SYNOPSIS

Top

    use Net::LDAP::Makepath;

	#Uses $ldap to create the new entries.
	#The objectClasses used are top and organizationalUnit.
	#The attribute used for the DNs is ou.
	#The path to be created is "some/path".
	#The base is "dc=foo,dc=bar".
	#
	#The resulting entries are...
	#dn: ou=some,dc=foo,dc=bar
	#objectClass: top
	#objectClass: orginationalUnit
	#ou: some
	#
	#dn: ou=path,ou=some,dc=foo,dc=ath
	#objectClass: top
	#objectClass: orginationalUnit
	#ou: path
	my $returned=LDAPmakepathSimple($ldap, ["top", "organizationalUnit"], "ou",
						"some,path", "dc=foo,dc=bar")
    if(!returned){
    	print "LDAPmakepathSimple failed.";
    };




EXPORT

Top

LDAPmakepathSimple

FUNCTIONS

Top

LDAPmakepathSimple

This creates a path from a comma seperated path. Five arguements are required.

The first arguement is a Net::LDAP connection object.

The second arguement is a array of objectClasses.

The third the attribute to use for creating the DNs.

The fourth is the path to use. It is broken apart at each ,.

The firth is the base DN to use.

The returned object is a perl boolean value.

AUTHOR

Top

Zane C. Bowers, <vvelox at vvelox.net>

BUGS

Top

Please report any bugs or feature requests to bug-net-ldap-makepath at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Net-LDAP-Makepath. 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::Makepath




You can also look for information at:

* RT: CPAN's request tracker

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

* AnnoCPAN: Annotated CPAN documentation

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

* CPAN Ratings

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

* Search CPAN

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

ACKNOWLEDGEMENTS

Top

COPYRIGHT & LICENSE

Top


Net-LDAP-Makepath documentation Contained in the Net-LDAP-Makepath distribution.
package Net::LDAP::Makepath;

use warnings;
use strict;
use Net::LDAP::Entry;
use Exporter;

use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);

our @ISA         = qw(Exporter);
our @EXPORT      = qw(LDAPmakepathSimple);
our @EXPORT_OK   = qw(LDAPmakepathSimple);
our %EXPORT_TAGS = (DEFAULT => [qw(LDAPmakepathSimple)]);


our $VERSION = '1.0.1';


sub LDAPmakepathSimple {
	my $ldap=$_[0]; #this contains the LDAP connection
	my @objectClasses=$_[1]; #a array holding the attributes 
	my $attribute=$_[2]; # the attribute to use for each path part
	my $path=$_[3]; # a path using , as the delimiter
	my $start=$_[4]; # this is where it starts at
	
	#splits $path at each ,
	my @pathA=split(/,/, $path);
	
	my $pathAint=0;#used for intering through @pathA
	#sets the previous DN as it will be used in the construction in the loop
	my $previousDN=$start;
	#go through @pathA and add each one
	while(defined($pathA[$pathAint])){
		my $dn=$attribute."=".$pathA[$pathAint].",".$previousDN;
		$previousDN=$dn; #sets the previous DN for use on the next path

		#creates the new entry
		my $entry = Net::LDAP::Entry->new;
		
		#sets the DN
		$entry->dn($dn);
		
		#adds the attributes
		$entry->add(objectClass=>@objectClasses, $attribute=>$pathA[$pathAint]);
		
		#sets the change type on this entry to add as it is being added
		$entry->changetype("add");
		
		#update it and warn if it fails.
		my $mesg=$entry->update($ldap);
		if($mesg->is_error){
			if($pathAint == $#pathA){
				warn("Adding '".$dn."' failed. Path creation failed.");
				return undef;
			};
		};
		
		$pathAint++;
	};

	return 1;
}


1; # End of Net::LDAP::Makepath