Merge pull request #5286 from atm-ph/fix_3.7_call_function_not_exists
Fix call function ldap_connect but not exists
This commit is contained in:
commit
1552e7f41f
@ -159,50 +159,41 @@ class Ldap
|
|||||||
dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING);
|
dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loop on each ldap server
|
if (! function_exists("ldap_connect"))
|
||||||
foreach ($this->server as $key => $host)
|
|
||||||
{
|
{
|
||||||
if ($connected) break;
|
$this->error='LDAPFunctionsNotAvailableOnPHP';
|
||||||
if (empty($host)) continue;
|
$return=-1;
|
||||||
|
dol_syslog(get_class($this)."::connect_bind ".$this->error, LOG_WARNING);
|
||||||
|
}
|
||||||
|
|
||||||
if (preg_match('/^ldap/',$host))
|
if (empty($this->error))
|
||||||
|
{
|
||||||
|
// Loop on each ldap server
|
||||||
|
foreach ($this->server as $key => $host)
|
||||||
{
|
{
|
||||||
$this->connection = ldap_connect($host);
|
if ($connected) break;
|
||||||
}
|
if (empty($host)) continue;
|
||||||
else
|
|
||||||
{
|
if (preg_match('/^ldap/',$host))
|
||||||
$this->connection = ldap_connect($host,$this->serverPort);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_resource($this->connection))
|
|
||||||
{
|
|
||||||
// Execute the ldap_set_option here (after connect and before bind)
|
|
||||||
$this->setVersion();
|
|
||||||
ldap_set_option($this->connection, LDAP_OPT_SIZELIMIT, 0); // no limit here. should return true.
|
|
||||||
|
|
||||||
|
|
||||||
if ($this->serverType == "activedirectory")
|
|
||||||
{
|
{
|
||||||
$result=$this->setReferrals();
|
$this->connection = ldap_connect($host);
|
||||||
dol_syslog(get_class($this)."::connect_bind try bindauth for activedirectory on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
|
||||||
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
|
||||||
if ($this->result)
|
|
||||||
{
|
|
||||||
$this->bind=$this->result;
|
|
||||||
$connected=2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Try in auth mode
|
$this->connection = ldap_connect($host,$this->serverPort);
|
||||||
if ($this->searchUser && $this->searchPassword)
|
}
|
||||||
|
|
||||||
|
if (is_resource($this->connection))
|
||||||
|
{
|
||||||
|
// Execute the ldap_set_option here (after connect and before bind)
|
||||||
|
$this->setVersion();
|
||||||
|
ldap_set_option($this->connection, LDAP_OPT_SIZELIMIT, 0); // no limit here. should return true.
|
||||||
|
|
||||||
|
|
||||||
|
if ($this->serverType == "activedirectory")
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::connect_bind try bindauth on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
$result=$this->setReferrals();
|
||||||
|
dol_syslog(get_class($this)."::connect_bind try bindauth for activedirectory on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
||||||
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
||||||
if ($this->result)
|
if ($this->result)
|
||||||
{
|
{
|
||||||
@ -215,26 +206,45 @@ class Ldap
|
|||||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Try in anonymous
|
else
|
||||||
if (! $this->bind)
|
|
||||||
{
|
{
|
||||||
dol_syslog(get_class($this)."::connect_bind try bind on ".$host,LOG_DEBUG);
|
// Try in auth mode
|
||||||
$result=$this->bind();
|
if ($this->searchUser && $this->searchPassword)
|
||||||
if ($result)
|
|
||||||
{
|
{
|
||||||
$this->bind=$this->result;
|
dol_syslog(get_class($this)."::connect_bind try bindauth on ".$host." user=".$this->searchUser." password=".preg_replace('/./','*',$this->searchPassword),LOG_DEBUG);
|
||||||
$connected=1;
|
$this->result=$this->bindauth($this->searchUser,$this->searchPassword);
|
||||||
break;
|
if ($this->result)
|
||||||
|
{
|
||||||
|
$this->bind=$this->result;
|
||||||
|
$connected=2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
// Try in anonymous
|
||||||
|
if (! $this->bind)
|
||||||
{
|
{
|
||||||
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
dol_syslog(get_class($this)."::connect_bind try bind on ".$host,LOG_DEBUG);
|
||||||
|
$result=$this->bind();
|
||||||
|
if ($result)
|
||||||
|
{
|
||||||
|
$this->bind=$this->result;
|
||||||
|
$connected=1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$this->error=ldap_errno($this->connection).' '.ldap_error($this->connection);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (! $connected) $this->close();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $connected) $this->close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($connected)
|
if ($connected)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user