Skip to content
Extraits de code Groupes Projets
Valider fefc5562 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

migration de spip_connect_ldap vers auth/ldap sous le nom auth_ldap_connect

spip_connect_ldap reste definie par soucis de compatibilite
Il reste un appel a cette fonction dans ecrire_acces, qui doit encore etre generalisee
parent 7ffbcff5
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -52,6 +52,31 @@ function auth_ldap_dist ($login, $pass) { ...@@ -52,6 +52,31 @@ function auth_ldap_dist ($login, $pass) {
return array(); return array();
} }
/**
* Connexion a l'annuaire LDAP
* Il faut passer par spip_connect() pour avoir les info
* donc potentiellement indiquer un serveur
* meme si dans les fait cet argument est toujours vide
*
* @param string $serveur
* @return string
*/
function auth_ldap_connect($serveur='') {
include_spip('base/connect_sql');
$connexion = spip_connect($serveur);
if (!is_array($connexion['ldap'])) {
if ($connexion['authentification']['ldap']) {
$f = _DIR_CONNECT . $connexion['authentification']['ldap'];
unset($GLOBALS['ldap_link']);
if (is_readable($f)) include_once($f);
if (isset($GLOBALS['ldap_link']))
$connexion['ldap'] = array('link' => $GLOBALS['ldap_link'],
'base' => $GLOBALS['ldap_base']);
}
}
return $connexion['ldap'];
}
/** /**
* Retrouver un login, et verifier son pass si demande par $checkpass * Retrouver un login, et verifier son pass si demande par $checkpass
* *
...@@ -67,7 +92,9 @@ function auth_ldap_search($login, $pass, $checkpass=true){ ...@@ -67,7 +92,9 @@ function auth_ldap_search($login, $pass, $checkpass=true){
if (!strlen($login_search) OR ($checkpass AND !strlen($pass)) ) if (!strlen($login_search) OR ($checkpass AND !strlen($pass)) )
return ''; return '';
if (!$ldap = spip_connect_ldap()) return ''; // verifier la connexion
if (!$ldap = auth_ldap_connect())
return '';
$ldap_link = $ldap['link']; $ldap_link = $ldap['link'];
$ldap_base = $ldap['base']; $ldap_base = $ldap['base'];
...@@ -104,7 +131,8 @@ function auth_ldap_retrouver($dn, $desc=array()) ...@@ -104,7 +131,8 @@ function auth_ldap_retrouver($dn, $desc=array())
{ {
// Lire les infos sur l'utilisateur a partir de son DN depuis LDAP // Lire les infos sur l'utilisateur a partir de son DN depuis LDAP
$ldap = spip_connect_ldap(); $ldap = auth_ldap_connect();
$ldap_link = $ldap_link['link'];
$ldap_link = $ldap['link']; $ldap_link = $ldap['link'];
if (!$desc) { if (!$desc) {
$desc = $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'] ; $desc = $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'] ;
......
...@@ -168,7 +168,7 @@ function spip_connect_db($host, $port, $login, $pass, $db='', $type='mysql', $pr ...@@ -168,7 +168,7 @@ function spip_connect_db($host, $port, $login, $pass, $db='', $type='mysql', $pr
if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) { if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) {
if (!is_array($auth)) { if (!is_array($auth)) {
// compatibilité version 0.7 initiale // compatibilite version 0.7 initiale
$g['ldap'] = $auth; $g['ldap'] = $auth;
$auth = array('ldap' => $auth); $auth = array('ldap' => $auth);
} }
...@@ -214,20 +214,10 @@ function spip_connect_main($connexion) ...@@ -214,20 +214,10 @@ function spip_connect_main($connexion)
return ($r['valeur'] ? $r['valeur'] : -1); return ($r['valeur'] ? $r['valeur'] : -1);
} }
// http://doc.spip.org/@spip_connect_ldap // compatibilite
function spip_connect_ldap($serveur='') { function spip_connect_ldap($serveur='') {
$connexion = spip_connect($serveur); include_spip('auth/ldap');
if (!is_array($connexion['ldap'])) { return auth_ldap_connect($serveur);
if ($connexion['authentification']['ldap']) {
$f = _DIR_CONNECT . $connexion['authentification']['ldap'];
unset($GLOBALS['ldap_link']);
if (is_readable($f)) include_once($f);
if (isset($GLOBALS['ldap_link']))
$connexion['ldap'] = array('link' => $GLOBALS['ldap_link'],
'base' => $GLOBALS['ldap_base']);
}
}
return $connexion['ldap'];
} }
// 1 interface de abstract_sql a demenager dans base/abstract_sql a terme // 1 interface de abstract_sql a demenager dans base/abstract_sql a terme
......
...@@ -169,7 +169,7 @@ function ecrire_acces() { ...@@ -169,7 +169,7 @@ function ecrire_acces() {
# de devenir redacteur le cas echeant (auth http)... a nettoyer # de devenir redacteur le cas echeant (auth http)... a nettoyer
// attention, il faut au prealable se connecter a la base (necessaire car utilise par install) // attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
if (spip_connect_ldap()) return; if (spip_connect_ldap()) return; // hum, il faudrait generaliser cela
$p1 = ''; // login:htpass pour tous $p1 = ''; // login:htpass pour tous
$p2 = ''; // login:htpass pour les admins $p2 = ''; // login:htpass pour les admins
$s = sql_select("login, htpass, statut", "spip_auteurs", sql_in("statut", array('1comite','0minirezo','nouveau'))); $s = sql_select("login, htpass, statut", "spip_auteurs", sql_in("statut", array('1comite','0minirezo','nouveau')));
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter