Net_LDAP2
[ class tree: Net_LDAP2 ] [ index: Net_LDAP2 ] [ all elements ]

Class: Net_LDAP2

Source Location: /Net_LDAP2-2.0.0RC2/LDAP2.php

Class Overview

PEAR
   |
   --Net_LDAP2

Net_LDAP2 - manipulate LDAP servers the right way!


Author(s):

Version:

  • CVS: $Id: LDAP2.php,v 1.2 2008/03/20 09:32:39 beni Exp $

Copyright:

  • 2003-2007 Tarjej Huse, Jan Wagner, Del Elson, Benedikt Hallinger

Variables

Methods


Inherited Variables

Inherited Methods


Class Details

[line 56]
Net_LDAP2 - manipulate LDAP servers the right way!


[ Top ]


Class Variables

$_config = array('host'     => 'localhost',
                               'port'     => 389,
                               'version'  => 3,
                               'starttls' => false,
                               'binddn'   => '',
                               'bindpw'   => '',
                               'basedn'   => '',
                               'options'  => array(),'filter'=>'(objectClass=*)','scope'=>'sub')

[line 75]

Class configuration array

host = the ldap host to connect to (may be an array of several hosts to try) port = the server port version = ldap version (defaults to v 3) starttls = when set, ldap_start_tls() is run after connecting. bindpw = no explanation needed binddn = the DN to bind as. basedn = ldap base options = hash of ldap options to set (opt => val) filter = default search filter scope = default search scope

  • Access: protected

Type:   array


[ Top ]

$_down_host_list = array()

[line 100]

List of hosts that are known to be down.
  • Access: protected

Type:   array


[ Top ]

$_host_list = array()

[line 92]

List of hosts we try to establish a connection to
  • Access: protected

Type:   array


[ Top ]

$_link =  false

[line 108]

LDAP resource link.
  • Access: protected

Type:   resource


[ Top ]

$_schema =  null

[line 118]

Net_LDAP2_Schema object

This gets set and returned by schema()

  • Access: protected



[ Top ]

$_schemaAttrs = array()

[line 127]

Cache for attribute encoding checks
  • Var: Hash with attribute names as key and boolean value to determine whether they should be utf8 encoded or not.
  • Access: protected

Type:   array


[ Top ]



Method Detail

__construct (Constructor)   [line 187]

void __construct( [array $config = array()])

Net_LDAP2 constructor

Sets the config array

Please note that the usual way of getting Net_LDAP2 to work is to call something like:

  1. $ldap Net_LDAP2::connect($ldap_config);


Parameters:

array   $config   —  Configuration array

[ Top ]

_Net_LDAP2 (Destructor)   [line 505]

void _Net_LDAP2( )

Destructor
  • Access: public

[ Top ]

add   [line 521]

Net_LDAP2_Error|true add( Net_LDAP2_Entry &$entry)

Add a new entryobject to a directory.

Use add to add a new Net_LDAP2_Entry object to the directory. This also links the entry to the connection used for the add, if it was a fresh entry (Net_LDAP2_Entry::createFresh())

  • Return: Net_LDAP2_Error object or true
  • Access: public

Parameters:

Net_LDAP2_Entry   &$entry   —  Net_LDAP2_Entry

[ Top ]

bind   [line 270]

Net_LDAP2_Error|true bind( [string $dn = null], [string $password = null])

Bind or rebind to the ldap-server

This function binds with the given dn and password to the server. In case no connection has been made yet, it will be startet and startTLS issued if appropiate.

The internal bind configuration is not being updated, so if you call bind() without parameters, you can rebind with the credentials provided at first connecting to the server.

  • Return: Net_LDAP2_Error object or true
  • Access: public

Parameters:

string   $dn   —  Distinguished name for binding
string   $password   —  Password for binding

[ Top ]

checkLDAPExtension   [line 1190]

Net_LDAP2_Error|true checkLDAPExtension( )

Checks if phps ldap-extension is loaded

If it is not loaded, it tries to load it manually using PHPs dl(). It knows both windows-dll and *nix-so.

  • Access: public

[ Top ]

connect   [line 152]

Net_LDAP2_Error|Net_LDAP2 &connect( [array $config = array()])

Creates the initial ldap-object

Static function that returns either an error object or the new Net_LDAP2 object. Something like a factory. Takes a config array with the needed parameters.

  • Return: Net_LDAP2_Error or Net_LDAP2 object
  • Access: public

Parameters:

array   $config   —  Configuration array

[ Top ]

copy   [line 1015]

Net_LDAP2_Error|Net_LDAP2_Entry &copy( Net_LDAP2_Entry &$entry, string $newdn)

Copy an entry to a new location

The entry will be immediately copied. Please note that only attributes you have selected will be copied.

  • Return: Error Message or reference to the copied entry
  • Access: public

Parameters:

Net_LDAP2_Entry   &$entry   —  Entry object
string   $newdn   —  New FQF-DN of the entry

[ Top ]

delete   [line 555]

Net_LDAP2_Error|true delete( string|Net_LDAP2_Entry $dn, [boolean $recursive = false])

Delete an entry from the directory

The object may either be a string representing the dn or a Net_LDAP2_Entry object. When the boolean paramter recursive is set, all subentries of the entry will be deleted as well.

  • Return: Net_LDAP2_Error object or true
  • Access: public

Parameters:

string|Net_LDAP2_Entry   $dn   —  DN-string or Net_LDAP2_Entry
boolean   $recursive   —  Should we delete all children recursive as well?

[ Top ]

dnExists   [line 877]

boolean|Net_LDAP2_Error dnExists( string $dn)

Tell if a DN does exist in the directory
  • Access: public

Parameters:

string   $dn   —  The DN of the object to test

[ Top ]

done   [line 495]

void done( )

Close LDAP connection.

Closes the connection. Use this when the session is over.

  • Access: public

[ Top ]

errorMessage   [line 1044]

string errorMessage( int $errorcode)

Returns the string for an ldap errorcode.

Made to be able to make better errorhandling Function based on DB::errorMessage() Tip: The best description of the errorcodes is found here: http://www.directory-info.com/LDAP2/LDAPErrorCodes.html

  • Return: The errorstring for the error.
  • Access: public

Parameters:

int   $errorcode   —  Error code

[ Top ]

getEntry   [line 919]

Net_LDAP2_Entry|Net_LDAP2_Error &getEntry( string $dn, [array $attr = array()])

Get a specific entry based on the DN
  • Return: Reference to a Net_LDAP2_Entry object or Net_LDAP2_Error object
  • Todo: Maybe check against the shema should be done to be sure the attribute type exists
  • Access: public

Parameters:

string   $dn   —  DN of the entry that should be fetched
array   $attr   —  Array of Attributes to select

[ Top ]

getLDAPVersion   [line 844]

int getLDAPVersion( )

Get the LDAP_PROTOCOL_VERSION that is used on the connection.

A lot of ldap functionality is defined by what protocol version the ldap server speaks. This might be 2 or 3.

  • Access: public

[ Top ]

getLink   [line 1304]

resource &getLink( )

Get the LDAP link
  • Return: LDAP link
  • Access: public

[ Top ]

getOption   [line 812]

Net_LDAP2_Error|string getOption( string $option)

Get an LDAP option value
  • Return: Net_LDAP2_Error or option value
  • Access: public

Parameters:

string   $option   —  Option to get

[ Top ]

getVersion   [line 135]

string getVersion( )

Returns the Net_LDAP2 Release version, may be called statically
  • Return: Net_LDAP2 version
  • Access: public

[ Top ]

isError   [line 1124]

boolean isError( mixed $var)

Tell whether variable is a Net_LDAP2_Error or not
  • Access: public

Parameters:

mixed   $var   —  A variable, most commonly some Net_LDAP2* object

[ Top ]

modify   [line 623]

Net_LDAP2_Error|true modify( string|Net_LDAP2_Entry &$entry, [array $parms = array()])

Modify an ldapentry directly on the server

This one takes the DN or a Net_LDAP2_Entry object and an array of actions. This array should be something like this:

array('add' => array('attribute1' => array('val1', 'val2'), 'attribute2' => array('val1')), 'delete' => array('attribute1'), 'replace' => array('attribute1' => array('val1')), 'changes' => array('add' => ..., 'replace' => ..., 'delete' => array('attribute1', 'attribute2' => array('val1')))

The changes array is there so the order of operations can be influenced (the operations are done in order of appearance). The order of execution is as following:

  1. adds from 'add' array
  2. deletes from 'delete' array
  3. replaces from 'replace' array
  4. changes (add, replace, delete) in order of appearance
All subarrays (add, replace, delete, changes) may be given at the same time.

The function calls the corresponding functions of an Net_LDAP2_Entry object. A detailed description of array structures can be found there.

Unlike the modification methods provided by the Net_LDAP2_Entry object, this method will instantly carry out an update() after each operation, thus modifying "directly" on the server.

  • Return: Net_LDAP2_Error object or true
  • Access: public

Parameters:

string|Net_LDAP2_Entry   &$entry   —  DN-string or Net_LDAP2_Entry
array   $parms   —  Array of changes

[ Top ]

move   [line 958]

Net_LDAP2_Error|true move( string|Net_LDAP2_Entry &$entry, string $newdn, [Net_LDAP2 $target_ldap = null])

Rename or move an entry

This method will instantly carry out an update() after the move, so the entry is moved instantly. You can pass an optional Net_LDAP2 object. In this case, a cross directory move will be performed which deletes the entry in the source (THIS) directory and adds it in the directory $target_ldap. A cross directory move will switch the Entrys internal LDAP reference so updates to the entry will go to the new directory.

Note that if you want to do a cross directory move, you need to pass an Net_LDAP2_Entry object, otherwise the attributes will be empty.

  • Access: public

Parameters:

string|Net_LDAP2_Entry   &$entry   —  Entry DN or Entry object
string   $newdn   —  New location
Net_LDAP2   $target_ldap   —  (optional) Target directory for cross server move; should be passed via reference

[ Top ]

rootDse   [line 1138]

Net_LDAP2_Error|Net_LDAP2_RootDSE &rootDse( [array $attrs = null])

Gets a rootDSE object
  • Return: Net_LDAP2_Error or Net_LDAP2_RootDSE object
  • Author: Jan Wagner <wagner@netsols.de>
  • Access: public

Parameters:

array   $attrs   —  Array of attributes to search for

[ Top ]

root_dse   [line 1151]

Net_LDAP2_Error|Net_LDAP2_RootDSE &root_dse( )

Alias function of rootDse() for perl-ldap interface

[ Top ]

schema   [line 1165]

Net_LDAP2_Schema|Net_LDAP2_Error &schema( [string $dn = null])

Get a schema object
  • Return: Net_LDAP2_Schema or Net_LDAP2_Error object
  • Access: public

Parameters:

string   $dn   —  (optional) Subschema entry dn

[ Top ]

search   [line 698]

Net_LDAP2_Search|Net_LDAP2_Error search( [string $base = null], [string|Net_LDAP2_Filter $filter = null], [array $params = array()])

Run a ldap query

Search is used to query the ldap-database. $base and $filter may be ommitted.The one from config will then be used. Params may contain:

scope: The scope which will be used for searching base - Just one entry sub - The whole tree one - Immediately below $base sizelimit: Limit the number of entries returned (default: 0 = unlimited), timelimit: Limit the time spent for searching (default: 0 = unlimited), attrsonly: If true, the search will only return the attribute names, attributes: Array of attribute names, which the entry should contain. It is good practice to limit this to just the ones you need. [NOT IMPLEMENTED] deref: By default aliases are dereferenced to locate the base object for the search, but not when searching subordinates of the base object. This may be changed by specifying one of the following values:

never - Do not dereference aliases in searching or in locating the base object of the search. search - Dereference aliases in subordinates of the base object in searching, but not in locating the base object of the search. find always

Please note, that you cannot override server side limitations to sizelimit and timelimit: You can always only lower a given limit.

  • Return: Net_LDAP2_Search object or Net_LDAP2_Error object
  • Access: public

Parameters:

string   $base   —  LDAP searchbase
string|Net_LDAP2_Filter   $filter   —  LDAP search filter or a Net_LDAP2_Filter object
array   $params   —  Array of options

[ Top ]

setLDAPVersion   [line 861]

Net_LDAP2_Error|true setLDAPVersion( [int $version = 0])

Set the LDAP_PROTOCOL_VERSION that is used on the connection.
  • Return: Net_LDAP2_Error object or true
  • Access: public

Parameters:

int   $version   —  LDAP-version that should be used

[ Top ]

setOption   [line 780]

Net_LDAP2_Error|true setOption( string $option, mixed $value)

Set an LDAP option
  • Return: Net_LDAP2_Error object or true
  • Access: public

Parameters:

string   $option   —  Option to set
mixed   $value   —  Value to set Option to

[ Top ]

startTLS   [line 466]

Net_LDAP2_Error|true startTLS( )

Starts an encrypted session
  • Return: Net_LDAP2_Error object or true
  • Access: public

[ Top ]

start_tls   [line 482]

void start_tls( )

alias function of startTLS() for perl-ldap interface

[ Top ]

utf8Decode   [line 1233]

array|Net_LDAP2_Error utf8Decode( array $attributes)

Decodes the given attribute values if needed by schema

$attributes is expected to be an array with keys describing the attribute names and the values as the value of this attribute:

  1. $attributes = array('cn' => 'foo''attr2' => array('mv1''mv2'));


Parameters:

array   $attributes   —  Array of attributes

[ Top ]

utf8Encode   [line 1215]

array|Net_LDAP2_Error utf8Encode( array $attributes)

Encodes given attributes to UTF8 if needed by schema

This function takes attributes in an array and then checks against the schema if they need UTF8 encoding. If that is so, they will be encoded. An encoded array will be returned and can be used for adding or modifying.

$attributes is expected to be an array with keys describing the attribute names and the values as the value of this attribute:

  1. $attributes = array('cn' => 'foo''attr2' => array('mv1''mv2'));

  • Return: Array of UTF8 encoded attributes or Error
  • Access: public

Parameters:

array   $attributes   —  Array of attributes

[ Top ]

_connect   [line 329]

Net_LDAP2_Error|true _connect( )

Connect to the ldap-server

This function connects to the given LDAP server.

  • Return: Net_LDAP2_Error object or true
  • Access: protected

[ Top ]

_setConfig   [line 201]

void _setConfig( array $config)

Sets the internal configuration array
  • Access: protected

Parameters:

array   $config   —  Configuration array

[ Top ]

_utf8   [line 1247]

array|Net_LDAP2_Error _utf8( array $attributes, array $function)

Encodes or decodes attribute values if needed
  • Return: Array of attributes with function applied to values or Error
  • Access: protected

Parameters:

array   $attributes   —  Array of attributes
array   $function   —  Function to apply to attribute values

[ Top ]


Documentation generated on Mon, 11 Mar 2019 15:17:50 -0400 by phpDocumentor 1.4.4. PEAR Logo Copyright © PHP Group 2004.