mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2025-03-26 05:41:37 +01:00
LSldap::getAttrs(): add $attrs and $include_internal optional parameters
This commit is contained in:
parent
d6c9e358f3
commit
9edfa2b92e
1 changed files with 15 additions and 6 deletions
|
@ -181,24 +181,33 @@ class LSldap extends LSlog_staticLoggerClass {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Charge les valeurs des attributs d'une entré de l'annuaire
|
* Load values of an LDAP entry attributes
|
||||||
*
|
*
|
||||||
* Cette methode recupère les valeurs des attributs d'une entrée de l'annaire
|
* This method retreive attributes values of an LDAP entry and return it
|
||||||
* et les retournes sous la forme d'un tableau.
|
* as associative array.
|
||||||
*
|
*
|
||||||
* @author Benjamin Renard <brenard@easter-eggs.com>
|
* @author Benjamin Renard <brenard@easter-eggs.com>
|
||||||
*
|
*
|
||||||
* @param[in] $dn string DN de l'entré Ldap
|
* @param[in] $dn string DN de l'entré Ldap
|
||||||
|
* @param[in] $filter string LDAP filter string (optional, default: null == '(objectClass=*)')
|
||||||
|
* @param[in] $attrs array|null Array of requested attribute (optional, default: null == all attributes, excepted internal)
|
||||||
|
* @param[in] $include_internal boolean If true, internal attributes will be included (default: false)
|
||||||
*
|
*
|
||||||
* @retval array Tableau associatif des valeurs des attributs avec en clef, le nom de l'attribut.
|
* @retval array|false Associative array of attributes values (with attribute name as key), or false on error
|
||||||
*/
|
*/
|
||||||
public static function getAttrs($dn, $filter=null) {
|
public static function getAttrs($dn, $filter=null, $attrs=null, $include_internal=false) {
|
||||||
$infos = ldap_explode_dn($dn,0);
|
$infos = ldap_explode_dn($dn,0);
|
||||||
if((!$infos)||($infos['count']==0))
|
if((!$infos)||($infos['count']==0))
|
||||||
return;
|
return;
|
||||||
if (!$filter)
|
if (!$filter)
|
||||||
$filter = '(objectClass=*)';
|
$filter = '(objectClass=*)';
|
||||||
$return = self :: search($filter, $dn);
|
$params = array(
|
||||||
|
'scope' => 'base',
|
||||||
|
'attributes' => (is_array($attrs)?$attrs:array('*')),
|
||||||
|
);
|
||||||
|
if ($include_internal && !in_array('+', $params['attributes']))
|
||||||
|
$params['attributes'][] = '+';
|
||||||
|
$return = self :: search($filter, $dn, $params);
|
||||||
if (is_array($return) && count($return) == 1)
|
if (is_array($return) && count($return) == 1)
|
||||||
return $return[0]['attrs'];
|
return $return[0]['attrs'];
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue