LSldapObject::validateAttrData(): fix checking LDAP validation result

This commit is contained in:
Benjamin Renard 2021-01-18 15:03:26 +01:00
parent 7ef6e57c49
commit 957777d44f

View file

@ -533,27 +533,28 @@ class LSldapObject extends LSlog_staticLoggerClass {
}
// Check result
if(LSconfig :: get('result', null, 'int', $test) == 0) {
if($ret != 0) {
$configured_result = LSconfig :: get('result', null, 'int', $test);
if(
($configured_result == 0 && $ret != 0) ||
($configured_result > 0 && $ret <= 0)
) {
$retval = false;
self :: log_warning(
"validateAttrData(".$LSform->idForm.", ".$attr->name."): ".
"validation with LDAP search on base DN='$sbasedn' and ".
"filter='".$sfilter->as_string()."' error ($ret object(s) found)"
);
if ($LSform)
$LSform -> setElementError($attr, $msg_error);
$retval = false;
}
}
else {
if($ret < 0) {
if ($LSform)
$LSform -> setElementError($attr, $msg_error);
$retval = false;
}
}
self :: log_trace(
"validateAttrData(".$LSform->idForm.", ".$attr->name."): ".
"validation with LDAP search on base DN='$sbasedn' and ".
"filter='".$sfilter->as_string()."' success ($ret object(s) found)"
);
}
}
// Validation using external function
else if(isset($test['function'])) {
if (function_exists($test['function'])) {