|
dolibarr 18.0.8
|
Class to manage LDAP features. More...

Public Member Functions | |
| __construct () | |
| Constructor. | |
| connect_bind () | |
| Connect and bind Use this->server, this->serverPort, this->ldapProtocolVersion, this->serverType, this->searchUser, this->searchPassword After return, this->connection and $this->bind are defined. | |
| close () | |
| Simply closes the connection set up earlier. | |
| bind () | |
| Anonymously binds to the connection. | |
| bindauth ($bindDn, $pass) | |
| Binds as an authenticated user, which usually allows for write access. | |
| unbind () | |
| Unbind of LDAP server (close connection). | |
| getVersion () | |
| Verification de la version du serveur ldap. | |
| setVersion () | |
| Change ldap protocol version to use. | |
| setReferrals () | |
| changement du referrals. | |
| add ($dn, $info, $user) | |
| Add a LDAP entry Ldap object connect and bind must have been done. | |
| modify ($dn, $info, $user) | |
| Modify a LDAP entry Ldap object connect and bind must have been done. | |
| rename ($dn, $newrdn, $newparent, $user, $deleteoldrdn=true) | |
| Rename a LDAP entry Ldap object connect and bind must have been done. | |
| update ($dn, $info, $user, $olddn, $newrdn=false, $newparent=false) | |
| Modify a LDAP entry (to use if dn != olddn) Ldap object connect and bind must have been done. | |
| delete ($dn) | |
| Delete a LDAP entry Ldap object connect and bind must have been done. | |
| dump_content ($dn, $info) | |
| Build a LDAP message. | |
| dump ($dn, $info) | |
| Dump a LDAP message to ldapinput.in file. | |
| serverPing ($host, $port=389, $timeout=1) | |
| Ping a server before ldap_connect for avoid waiting. | |
| addAttribute ($dn, $info, $user) | |
| Add a LDAP attribute in entry Ldap object connect and bind must have been done. | |
| updateAttribute ($dn, $info, $user) | |
| Update a LDAP attribute in entry Ldap object connect and bind must have been done. | |
| deleteAttribute ($dn, $info, $user) | |
| Delete a LDAP attribute in entry Ldap object connect and bind must have been done. | |
| getAttribute ($dn, $filter) | |
| Returns an array containing attributes and values for first record. | |
| getAttributeValues ($filterrecord, $attribute) | |
| Returns an array containing values for an attribute and for first record matching filterrecord. | |
| getRecords ($search, $userDn, $useridentifier, $attributeArray, $activefilter=0, $attributeAsArray=array()) | |
| Returns an array containing a details or list of LDAP record(s). | |
| littleEndian ($hex) | |
| Converts a little-endian hex-number to one, that 'hexdec' can convert Required by Active Directory. | |
| getObjectSid ($ldapUser) | |
| Recupere le SID de l'utilisateur Required by Active Directory. | |
| binSIDtoText ($binsid) | |
| Returns the textual SID Indispensable pour Active Directory. | |
| search ($checkDn, $filter) | |
| Fonction de recherche avec filtre this->connection doit etre defini donc la methode bind ou bindauth doit avoir deja ete appelee Ne pas utiliser pour recherche d'une liste donnee de proprietes car conflit majuscule-minuscule. | |
| fetch ($user, $filter) | |
| Load all attribute of a LDAP user. | |
| getUserIdentifier () | |
| Returns the correct user identifier to use, based on the ldap server type. | |
| parseUACF ($uacf) | |
| UserAccountControl Flgs to more human understandable form... | |
| parseSAT ($samtype) | |
| SamAccountType value to text. | |
| convert_time ($value) | |
| Convertit le temps ActiveDirectory en Unix timestamp. | |
| convFromOutputCharset ($str, $pagecodeto='UTF-8') | |
| Convert a string from output/memory charset. | |
| getNextGroupGid ($keygroup='LDAP_KEY_GROUPS') | |
| Return available value of group GID. | |
Public Attributes | |
| $server = array() | |
| Tableau des serveurs (IP addresses ou nom d'hotes) | |
| $connectedServer | |
| Current connected server. | |
| $dn | |
| Base DN (e.g. | |
| $serverType | |
| type de serveur, actuellement OpenLdap et Active Directory | |
| $ldapProtocolVersion | |
| Version du protocole ldap. | |
| $domain | |
| Server DN. | |
| $searchUser | |
| User administrateur Ldap Active Directory ne supporte pas les connexions anonymes. | |
| $searchPassword | |
| Mot de passe de l'administrateur Active Directory ne supporte pas les connexions anonymes. | |
| $people | |
| DN des utilisateurs. | |
| $groups | |
| DN des groupes. | |
| $ldapErrorCode | |
| Code erreur retourne par le serveur Ldap. | |
| $ldapErrorText | |
| Message texte de l'erreur. | |
| $connection | |
| The internal LDAP connection handle. | |
| $result | |
| Result of any connections etc. | |
| const | SYNCHRO_NONE = 0 |
| No Ldap synchronization. | |
| const | SYNCHRO_DOLIBARR_TO_LDAP = 1 |
| Dolibarr to Ldap synchronization. | |
| const | SYNCHRO_LDAP_TO_DOLIBARR = 2 |
| Ldap to Dolibarr synchronization. | |
Private Member Functions | |
| convToOutputCharset ($str, $pagecodefrom='UTF-8') | |
| Convert a string into output/memory charset. | |
Class to manage LDAP features.
Definition at line 34 of file ldap.class.php.
| Ldap::add | ( | $dn, | |
| $info, | |||
| $user ) |
Add a LDAP entry Ldap object connect and bind must have been done.
| string | $dn | DN entry key |
| array | $info | Attributes array |
| User | $user | Objet user that create |
Definition at line 459 of file ldap.class.php.
References $dn, $ldapErrorText, $result, bind(), convFromOutputCharset(), dol_syslog(), and dump().
Referenced by update().
| Ldap::addAttribute | ( | $dn, | |
| $info, | |||
| $user ) |
Add a LDAP attribute in entry Ldap object connect and bind must have been done.
| string | $dn | DN entry key |
| array | $info | Attributes array |
| User | $user | Objet user that create |
Definition at line 806 of file ldap.class.php.
References $dn, $result, bind(), convFromOutputCharset(), dol_syslog(), and dump().
| Ldap::bind | ( | ) |
Anonymously binds to the connection.
After this is done, queries and searches can be done - but read-only.
Definition at line 359 of file ldap.class.php.
References $ldapErrorText.
Referenced by add(), addAttribute(), connect_bind(), delete(), deleteAttribute(), getAttribute(), modify(), rename(), update(), and updateAttribute().
| Ldap::bindauth | ( | $bindDn, | |
| $pass ) |
Binds as an authenticated user, which usually allows for write access.
The FULL dn must be passed. For a directory manager, this is "cn=Directory Manager" under iPlanet. For a user, it will be something like "uid=jbloggs,ou=People,dc=foo,dc=com".
| string | $bindDn | DN |
| string | $pass | Password |
Definition at line 381 of file ldap.class.php.
References $ldapErrorText.
Referenced by connect_bind(), fetch(), getObjectSid(), getRecords(), and search().
| Ldap::binSIDtoText | ( | $binsid | ) |
Returns the textual SID Indispensable pour Active Directory.
| string | $binsid | Binary SID |
Definition at line 1185 of file ldap.class.php.
References $result, and littleEndian().
Referenced by getObjectSid().
| Ldap::close | ( | ) |
Simply closes the connection set up earlier.
Returns true if OK, false if there was an error. This method seems a duplicate/alias of unbind().
Definition at line 348 of file ldap.class.php.
References unbind().
| Ldap::connect_bind | ( | ) |
Connect and bind Use this->server, this->serverPort, this->ldapProtocolVersion, this->serverType, this->searchUser, this->searchPassword After return, this->connection and $this->bind are defined.
Definition at line 195 of file ldap.class.php.
References $result, bind(), bindauth(), dol_syslog(), serverPing(), setReferrals(), setVersion(), and unbind().
| Ldap::convert_time | ( | $value | ) |
Convertit le temps ActiveDirectory en Unix timestamp.
| string | $value | AD time to convert |
Definition at line 1422 of file ldap.class.php.
Referenced by fetch().
| Ldap::convFromOutputCharset | ( | $str, | |
| $pagecodeto = 'UTF-8' ) |
Convert a string from output/memory charset.
| string | $str | String to convert |
| string | $pagecodeto | Page code for result string |
Definition at line 1459 of file ldap.class.php.
Referenced by add(), addAttribute(), delete(), deleteAttribute(), modify(), rename(), search(), and updateAttribute().
|
private |
Convert a string into output/memory charset.
| string | $str | String to convert |
| string | $pagecodefrom | Page code of src string |
Definition at line 1440 of file ldap.class.php.
Referenced by fetch(), and getRecords().
| Ldap::delete | ( | $dn | ) |
Delete a LDAP entry Ldap object connect and bind must have been done.
| string | $dn | DN entry key |
Definition at line 659 of file ldap.class.php.
References $dn, $result, bind(), convFromOutputCharset(), and dol_syslog().
| Ldap::deleteAttribute | ( | $dn, | |
| $info, | |||
| $user ) |
Delete a LDAP attribute in entry Ldap object connect and bind must have been done.
| string | $dn | DN entry key |
| array | $info | Attributes array |
| User | $user | Objet user that create |
Definition at line 898 of file ldap.class.php.
References $dn, $result, bind(), convFromOutputCharset(), dol_syslog(), and dump().
| Ldap::dump | ( | $dn, | |
| $info ) |
Dump a LDAP message to ldapinput.in file.
| string | $dn | DN entry key |
| array | $info | Attributes array |
Definition at line 729 of file ldap.class.php.
References $dn, $result, dol_mkdir(), dolChmod(), and dump_content().
Referenced by add(), addAttribute(), deleteAttribute(), modify(), and updateAttribute().
| Ldap::dump_content | ( | $dn, | |
| $info ) |
Build a LDAP message.
| string | $dn | DN entry key |
| array | $info | Attributes array |
Definition at line 692 of file ldap.class.php.
Referenced by dump().
| Ldap::fetch | ( | $user, | |
| $filter ) |
Load all attribute of a LDAP user.
| User | string | $user | Not used. |
| string | $filter | Filter for search. Must start with &. Examples: &(objectClass=inetOrgPerson) &(objectClass=user)(objectCategory=person) &(isMemberOf=cn=Sales,ou=Groups,dc=opencsi,dc=com) |
Definition at line 1243 of file ldap.class.php.
References $domain, $people, $result, bindauth(), convert_time(), convToOutputCharset(), dol_syslog(), name, and parseUACF().
| Ldap::getAttribute | ( | $dn, | |
| $filter ) |
Returns an array containing attributes and values for first record.
| string | $dn | DN entry key |
| string | $filter | Filter |
Definition at line 942 of file ldap.class.php.
| Ldap::getAttributeValues | ( | $filterrecord, | |
| $attribute ) |
Returns an array containing values for an attribute and for first record matching filterrecord.
| string | $filterrecord | Record |
| string | $attribute | Attributes |
Definition at line 983 of file ldap.class.php.
| Ldap::getNextGroupGid | ( | $keygroup = 'LDAP_KEY_GROUPS' | ) |
Return available value of group GID.
| string | $keygroup | Key of group |
Definition at line 1478 of file ldap.class.php.
| Ldap::getObjectSid | ( | $ldapUser | ) |
Recupere le SID de l'utilisateur Required by Active Directory.
| string | $ldapUser | Login de l'utilisateur |
Definition at line 1135 of file ldap.class.php.
References $domain, $people, bindauth(), and binSIDtoText().
Referenced by getRecords().
| Ldap::getRecords | ( | $search, | |
| $userDn, | |||
| $useridentifier, | |||
| $attributeArray, | |||
| $activefilter = 0, | |||
| $attributeAsArray = array() ) |
Returns an array containing a details or list of LDAP record(s).
ldapsearch -LLLx -hlocalhost -Dcn=admin,dc=parinux,dc=org -w password -b "ou=adherents,ou=people,dc=parinux,dc=org" userPassword
| string | $search | Value of field to search, '*' for all. Not used if $activefilter is set. |
| string | $userDn | DN (Ex: ou=adherents,ou=people,dc=parinux,dc=org) |
| string | $useridentifier | Name of key field (Ex: uid). |
| array | $attributeArray | Array of fields required. Note this array must also contains field $useridentifier (Ex: sn,userPassword) |
| int | $activefilter | '1' or 'user'=use field this->filter as filter instead of parameter $search, 'group'=use field this->filtergroup as filter, 'member'=use field this->filtermember as filter |
| array | $attributeAsArray | Array of fields wanted as an array not a string |
Definition at line 1026 of file ldap.class.php.
References bindauth(), convToOutputCharset(), dol_syslog(), and getObjectSid().
| Ldap::getUserIdentifier | ( | ) |
Returns the correct user identifier to use, based on the ldap server type.
Definition at line 1327 of file ldap.class.php.
| Ldap::getVersion | ( | ) |
Verification de la version du serveur ldap.
Definition at line 418 of file ldap.class.php.
| Ldap::littleEndian | ( | $hex | ) |
Converts a little-endian hex-number to one, that 'hexdec' can convert Required by Active Directory.
| string | $hex | Hex value |
Definition at line 1118 of file ldap.class.php.
References $result, and dol_strlen().
Referenced by binSIDtoText().
| Ldap::modify | ( | $dn, | |
| $info, | |||
| $user ) |
Modify a LDAP entry Ldap object connect and bind must have been done.
| string | $dn | DN entry key |
| array | $info | Attributes array |
| User | $user | Objet user that modify |
Definition at line 507 of file ldap.class.php.
References $dn, $result, bind(), convFromOutputCharset(), dol_syslog(), and dump().
Referenced by update().
| Ldap::parseSAT | ( | $samtype | ) |
SamAccountType value to text.
| string | $samtype | SamType |
Definition at line 1389 of file ldap.class.php.
| Ldap::parseUACF | ( | $uacf | ) |
UserAccountControl Flgs to more human understandable form...
| string | $uacf | UACF |
Definition at line 1342 of file ldap.class.php.
Referenced by fetch().
| Ldap::rename | ( | $dn, | |
| $newrdn, | |||
| $newparent, | |||
| $user, | |||
| $deleteoldrdn = true ) |
Rename a LDAP entry Ldap object connect and bind must have been done.
| string | $dn | Old DN entry key (uid=qqq,ou=xxx,dc=aaa,dc=bbb) (before update) |
| string | $newrdn | New RDN entry key (uid=qqq) |
| string | $newparent | New parent (ou=xxx,dc=aaa,dc=bbb) |
| User | $user | Objet user that modify |
| bool | $deleteoldrdn | If true the old RDN value(s) is removed, else the old RDN value(s) is retained as non-distinguished values of the entry. |
Definition at line 565 of file ldap.class.php.
References $dn, $result, bind(), convFromOutputCharset(), and dol_syslog().
Referenced by update().
| Ldap::search | ( | $checkDn, | |
| $filter ) |
Fonction de recherche avec filtre this->connection doit etre defini donc la methode bind ou bindauth doit avoir deja ete appelee Ne pas utiliser pour recherche d'une liste donnee de proprietes car conflit majuscule-minuscule.
A n'utiliser que pour les pages 'Fiche LDAP' qui affiche champ lisibles par defaut.
| string | $checkDn | DN de recherche (Ex: ou=users,cn=my-domain,cn=com) |
| string | $filter | Search filter (ex: (sn=nom_personne) ) |
Definition at line 1210 of file ldap.class.php.
References $result, bindauth(), convFromOutputCharset(), and dol_syslog().
Referenced by getNextGroupGid().
| Ldap::serverPing | ( | $host, | |
| $port = 389, | |||
| $timeout = 1 ) |
Ping a server before ldap_connect for avoid waiting.
| string | $host | Server host or address |
| int | $port | Server port (default 389) |
| int | $timeout | Timeout in second (default 1s) |
Definition at line 759 of file ldap.class.php.
Referenced by connect_bind().
| Ldap::setReferrals | ( | ) |
changement du referrals.
Definition at line 442 of file ldap.class.php.
Referenced by connect_bind().
| Ldap::setVersion | ( | ) |
Change ldap protocol version to use.
Definition at line 430 of file ldap.class.php.
Referenced by connect_bind().
| Ldap::unbind | ( | ) |
Unbind of LDAP server (close connection).
Definition at line 399 of file ldap.class.php.
Referenced by close(), and connect_bind().
| Ldap::update | ( | $dn, | |
| $info, | |||
| $user, | |||
| $olddn, | |||
| $newrdn = false, | |||
| $newparent = false ) |
Modify a LDAP entry (to use if dn != olddn) Ldap object connect and bind must have been done.
| string | $dn | DN entry key |
| array | $info | Attributes array |
| User | $user | Objet user that update |
| string | $olddn | Old DN entry key (before update) |
| string | $newrdn | New RDN entry key (uid=qqq) (for ldap_rename) |
| string | $newparent | New parent (ou=xxx,dc=aaa,dc=bbb) (for ldap_rename) |
Definition at line 609 of file ldap.class.php.
References $dn, $result, add(), bind(), dol_syslog(), modify(), and rename().
| Ldap::updateAttribute | ( | $dn, | |
| $info, | |||
| $user ) |
Update a LDAP attribute in entry Ldap object connect and bind must have been done.
| string | $dn | DN entry key |
| array | $info | Attributes array |
| User | $user | Objet user that create |
Definition at line 852 of file ldap.class.php.
References $dn, $result, bind(), convFromOutputCharset(), dol_syslog(), and dump().
| Ldap::$dn |
Base DN (e.g.
"dc=foo,dc=com")
Definition at line 59 of file ldap.class.php.
Referenced by add(), addAttribute(), delete(), deleteAttribute(), dump(), getAttribute(), modify(), rename(), update(), and updateAttribute().