mirror of
https://gitlab.easter-eggs.com/ee/ldapsaisie.git
synced 2024-11-16 15:33:02 +01:00
LSldap: fix search & getNumberResult methods to use basedn from configuration instead of empty one.
This commit is contained in:
parent
14352da6bd
commit
89ecbb8a5c
1 changed files with 59 additions and 18 deletions
|
@ -135,20 +135,33 @@ class LSldap extends LSlog_staticLoggerClass {
|
||||||
* - ['attrs'] : tableau associatif contenant les attributs (clé)
|
* - ['attrs'] : tableau associatif contenant les attributs (clé)
|
||||||
* et leur valeur (valeur).
|
* et leur valeur (valeur).
|
||||||
*/
|
*/
|
||||||
public static function search ($filter,$basedn=NULL,$params = array()) {
|
public static function search($filter, $basedn=NULL, $params=array()) {
|
||||||
$ret = self :: $cnx -> search($basedn,$filter,$params);
|
$filterstr = (is_a($filter, 'Net_LDAP2_Filter')?$filter->as_string():$filter);
|
||||||
|
if (is_empty($basedn)) {
|
||||||
|
$basedn = self :: getConfig('basedn');
|
||||||
|
if (is_empty($basedn)) {
|
||||||
|
LSerror :: addErrorCode('LSldap_08');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
self :: log_debug("LSldap::search($filterstr): empty basedn provided, use basedn from configuration: ".varDump($basedn));
|
||||||
|
}
|
||||||
|
self :: log_trace("LSldap::search($filterstr, $basedn): run search with parameters: ".varDump($params));
|
||||||
|
$ret = self :: $cnx -> search($basedn, $filter, $params);
|
||||||
if (Net_LDAP2::isError($ret)) {
|
if (Net_LDAP2::isError($ret)) {
|
||||||
LSerror :: addErrorCode('LSldap_02',$ret -> getMessage());
|
LSerror :: addErrorCode('LSldap_02', $ret -> getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self :: log_debug("LSldap::search() : return ".$ret->count()." objet(s)");
|
self :: log_debug("LSldap::search($filterstr, $basedn) : return ".$ret->count()." objet(s)");
|
||||||
$retInfos=array();
|
$retInfos = array();
|
||||||
foreach($ret as $dn => $entry) {
|
foreach($ret as $dn => $entry) {
|
||||||
if (!$entry instanceof Net_LDAP2_Entry) {
|
if (!$entry instanceof Net_LDAP2_Entry) {
|
||||||
LSerror :: addErrorCode('LSldap_02',"LDAP search return an ".get_class($entry).". object");
|
LSerror :: addErrorCode('LSldap_02', "LDAP search return an ".get_class($entry).". object");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$retInfos[]=array('dn' => $dn, 'attrs' => $entry -> getValues());
|
$retInfos[] = array(
|
||||||
|
'dn' => $dn,
|
||||||
|
'attrs' => $entry -> getValues()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return $retInfos;
|
return $retInfos;
|
||||||
}
|
}
|
||||||
|
@ -169,15 +182,27 @@ class LSldap extends LSlog_staticLoggerClass {
|
||||||
*
|
*
|
||||||
* @retval numeric Le nombre d'entré trouvées
|
* @retval numeric Le nombre d'entré trouvées
|
||||||
*/
|
*/
|
||||||
public static function getNumberResult ($filter,$basedn=NULL,$params = array() ) {
|
public static function getNumberResult($filter, $basedn=NULL, $params=array()) {
|
||||||
if (empty($filter))
|
if (empty($filter))
|
||||||
$filter=NULL;
|
$filter = NULL;
|
||||||
$ret = self :: $cnx -> search($basedn,$filter,$params);
|
$filterstr = (is_a($filter, 'Net_LDAP2_Filter')?$filter->as_string():$filter);
|
||||||
|
if (is_empty($basedn)) {
|
||||||
|
$basedn = self :: getConfig('basedn');
|
||||||
|
if (is_empty($basedn)) {
|
||||||
|
LSerror :: addErrorCode('LSldap_08');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
self :: log_debug("LSldap::getNumberResult($filterstr): empty basedn provided, use basedn from configuration: ".varDump($basedn));
|
||||||
|
}
|
||||||
|
self :: log_trace("LSldap::getNumberResult($filterstr, $basedn): run search with parameters: ".varDump($params));
|
||||||
|
$ret = self :: $cnx -> search($basedn, $filter, $params);
|
||||||
if (Net_LDAP2::isError($ret)) {
|
if (Net_LDAP2::isError($ret)) {
|
||||||
LSerror :: addErrorCode('LSldap_02',$ret -> getMessage());
|
LSerror :: addErrorCode('LSldap_02',$ret -> getMessage());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return $ret -> count();
|
$count = $ret -> count();
|
||||||
|
self :: log_trace("LSldap::getNumberResult($filterstr, $basedn): result=$count");
|
||||||
|
return $count;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -534,29 +559,45 @@ class LSldap extends LSlog_staticLoggerClass {
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a configuration parameter (or default value)
|
||||||
|
*
|
||||||
|
* @param[] $param The configuration parameter
|
||||||
|
* @param[] $default The default value (default : null)
|
||||||
|
* @param[] $cast Cast resulting value in specific type (default : disabled)
|
||||||
|
*
|
||||||
|
* @retval mixed The configuration parameter value or default value if not set
|
||||||
|
**/
|
||||||
|
private static function getConfig($param, $default=null, $cast=null) {
|
||||||
|
return LSconfig :: get($param, $default, $cast, self :: $config);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Error Codes
|
* Error Codes
|
||||||
*/
|
*/
|
||||||
LSerror :: defineError('LSldap_01',
|
LSerror :: defineError('LSldap_01',
|
||||||
___("LSldap : Error during the LDAP server connection (%{msg}).")
|
___("LSldap: Error during the LDAP server connection (%{msg}).")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSldap_02',
|
LSerror :: defineError('LSldap_02',
|
||||||
___("LSldap : Error during the LDAP search (%{msg}).")
|
___("LSldap: Error during the LDAP search (%{msg}).")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSldap_03',
|
LSerror :: defineError('LSldap_03',
|
||||||
___("LSldap : Object type unknown.")
|
___("LSldap: Object type unknown.")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSldap_04',
|
LSerror :: defineError('LSldap_04',
|
||||||
___("LSldap : Error while fetching the LDAP entry.")
|
___("LSldap: Error while fetching the LDAP entry.")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSldap_05',
|
LSerror :: defineError('LSldap_05',
|
||||||
___("LSldap : Error while changing the LDAP entry (DN : %{dn}).")
|
___("LSldap: Error while changing the LDAP entry (DN : %{dn}).")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSldap_06',
|
LSerror :: defineError('LSldap_06',
|
||||||
___("LSldap : Error while deleting empty attributes.")
|
___("LSldap: Error while deleting empty attributes.")
|
||||||
);
|
);
|
||||||
LSerror :: defineError('LSldap_07',
|
LSerror :: defineError('LSldap_07',
|
||||||
___("LSldap : Error while changing the DN of the object.")
|
___("LSldap: Error while changing the DN of the object.")
|
||||||
|
);
|
||||||
|
LSerror :: defineError('LSldap_08',
|
||||||
|
___("LSldap: LDAP server base DN not configured.")
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue