Skip to content
Snippets Groups Projects
Commit 3728e5e9 authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

Merge remote-tracking branch 'origin/3.7' into 3.7_backported

parents af99db9b acc8cca8
Branches 3.7_backported
No related tags found
No related merge requests found
...@@ -159,50 +159,41 @@ class Ldap ...@@ -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)) }
{
$this->connection = ldap_connect($host);
}
else
{
$this->connection = ldap_connect($host,$this->serverPort);
}
if (is_resource($this->connection)) if (empty($this->error))
{
// Loop on each ldap server
foreach ($this->server as $key => $host)
{ {
// Execute the ldap_set_option here (after connect and before bind) if ($connected) break;
$this->setVersion(); if (empty($host)) continue;
ldap_set_option($this->connection, LDAP_OPT_SIZELIMIT, 0); // no limit here. should return true.
if (preg_match('/^ldap/',$host))
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 ...@@ -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)
......
...@@ -732,17 +732,24 @@ function activateModule($value,$withdeps=1) ...@@ -732,17 +732,24 @@ function activateModule($value,$withdeps=1)
if (isset($objMod->depends) && is_array($objMod->depends) && ! empty($objMod->depends)) if (isset($objMod->depends) && is_array($objMod->depends) && ! empty($objMod->depends))
{ {
// Activation des modules dont le module depend // Activation des modules dont le module depend
$TError=array();
$num = count($objMod->depends); $num = count($objMod->depends);
for ($i = 0; $i < $num; $i++) for ($i = 0; $i < $num; $i++)
{ {
$activate = false;
foreach ($modulesdir as $dir) foreach ($modulesdir as $dir)
{ {
if (file_exists($dir.$objMod->depends[$i].".class.php")) if (file_exists($dir.$objMod->depends[$i].".class.php"))
{ {
activateModule($objMod->depends[$i]); activateModule($objMod->depends[$i]);
$activate = true;
} }
} }
if (!$activate) $TError[] = $langs->trans('activateModuleDependNotSatisfied', $objMod->name, $objMod->depends[$i]);
} }
setEventMessages('', $TError, 'errors');
} }
if (isset($objMod->conflictwith) && is_array($objMod->conflictwith) && ! empty($objMod->conflictwith)) if (isset($objMod->conflictwith) && is_array($objMod->conflictwith) && ! empty($objMod->conflictwith))
......
...@@ -1563,3 +1563,4 @@ TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both custome ...@@ -1563,3 +1563,4 @@ TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both custome
IncludePath=Include path (defined into variable %s) IncludePath=Include path (defined into variable %s)
NoModueToManageStockDecrease=No module able to manage automatic stock decrease has been activated. Stock decrease will be done on manual input only. NoModueToManageStockDecrease=No module able to manage automatic stock decrease has been activated. Stock decrease will be done on manual input only.
NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only.
activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment