Valider dba0114b rédigé par esj's avatar esj
Parcourir les fichiers

Pb pour le multi-base de 2 sites sous LDAP: on ne peut charger le connect.php...

Pb pour le multi-base de 2 sites sous LDAP: on ne peut charger le connect.php du 2e site, car ça définit à nouveau la fonction spip_connect_ldap. En conséquence, cette définition et informations connexes migrent dans un nouveau fichier, par défaut confif/ldap.php. Ne reste dans connect.php que l'affectation de la globale '''ldap_present''', pour prévenir que ce 2e fichier est à charger. Ca règle le problème  pour 2 sites sous le même LDAP, ça ne fera que le rendre moins voyant pour les autres. A suivre donc.
parent b20ac9f0
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+4 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -59,12 +59,12 @@ function admin_verifie_session($script) {
	include_spip('base/abstract_sql');
	$pref = sprintf("_%d_",$GLOBALS['auteur_session']['id_auteur']);
	$signal = fichier_admin($script, "$script$pref");
	$row = sql_fetsel('valeur', 'spip_meta', "nom='admin'");
	if (!$row) {
	$valeur = sql_getfetsel('valeur', 'spip_meta', "nom='admin'");
	if ($valeur === NULL) {
		ecrire_meta('admin', $signal,'non');
	} else {
		if (($s = $row['valeur']) != $signal) {
			if (intval(substr($s, strpos($s,'_')+1))<>
		if ($valeur != $signal) {
			if (intval(substr($valeur, strpos($valeur,'_')+1))<>
			    $GLOBALS['auteur_session']['id_auteur']) {
			  include_spip('inc/minipres');
			  echo minipres(_T('info_travaux_texte'));
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -11,6 +11,7 @@
\***************************************************************************/

if (!defined("_ECRIRE_INC_VERSION")) return;
include_once(_DIR_CONNECT . 'ldap.php');

// Authentifie via LDAP et retourne la ligne SQL decrivant l'utilisateur si ok

+2 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1224,6 +1224,8 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
		(@is_readable($f = _DIR_CHMOD . _FILE_CHMOD_INS . '.php') ? $f
	:	false));

	define('_FILE_LDAP', _DIR_CONNECT . 'ldap' . '.php');

	define('_FILE_TMP_SUFFIX', '.tmp.php');
	define('_FILE_CONNECT_TMP', _DIR_CONNECT . _FILE_CONNECT_INS . _FILE_TMP_SUFFIX);
	define('_FILE_CHMOD_TMP', _DIR_CHMOD . _FILE_CHMOD_INS . _FILE_TMP_SUFFIX);
+2 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -37,10 +37,9 @@ function install_etape_ldap1_dist()
		? _INSTALL_PASS_LDAP
		: '';


	// Recuperer les anciennes donnees (si presentes)
	if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . '.php')) {
		$s = @join('', @file(_FILE_CONNECT_INS . _FILE_TMP . '.php'));
	if (@file_exists(_FILE_LDAP)) {
		$s = @join('', @file(_FILE_LDAP));
		if (preg_match('#ldap_connect\("(.*)","(.*)"\)#', $s, $regs)) {
			$adresse_ldap = $regs[1];
			$port_ldap = $regs[2];
+16 −16
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -42,24 +42,24 @@ function install_etape_ldap4_dist()
		info_etape(_T('info_reglage_ldap'));

		lire_fichier(_FILE_CONNECT_TMP, $conn);
		if ($p = strpos($conn, '?'.'>')) 
			$conn = substr($conn, 0, $p);
		if (!strpos($conn, 'spip_connect_ldap')) {
			$conn .= "function spip_connect_ldap() {\n";
			$conn .= "\t\$GLOBALS['ldap_link'] = @ldap_connect(\"$adresse_ldap\",\"$port_ldap\");\n";
			$conn .= "\t@ldap_set_option(\$GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,\"$protocole_ldap\");\n";
 			if ($tls_ldap == 'oui')
				$conn .= "\t@ldap_start_tls(\$GLOBALS['ldap_link']);\n";


			$conn .= "\t@ldap_bind(\$GLOBALS['ldap_link'],\"$login_ldap\",\"$pass_ldap\");\n";
			$conn .= "\treturn \$GLOBALS['ldap_link'];\n";
			$conn .= "}\n";
			$conn .= "\$GLOBALS['ldap_base'] = \"$base_ldap\";\n";
			$conn .= "\$GLOBALS['ldap_present'] = true;\n";
		}
		$conn .= "?".">";
			$p = strpos($conn, '?'.'>');
			$conn = substr($conn, 0, $p) 
			. "\$GLOBALS['ldap_present'] = true;\n"
			. '?'.'>';
			ecrire_fichier(_FILE_CONNECT_TMP, $conn);
		}
		$conn = "function spip_connect_ldap() {\n"
		. "\t\$GLOBALS['ldap_link'] = @ldap_connect(\"$adresse_ldap\",\"$port_ldap\");\n"
		. "\t@ldap_set_option(\$GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,\"$protocole_ldap\");\n"
		. (($tls_ldap != 'oui') ? '' :
		   "\t@ldap_start_tls(\$GLOBALS['ldap_link']);\n")
		. "\t@ldap_bind(\$GLOBALS['ldap_link'],\"$login_ldap\",\"$pass_ldap\");\n"
		. "\treturn \$GLOBALS['ldap_link'];\n"
		. "}\n"
		. "\$GLOBALS['ldap_base'] = \"$base_ldap\";\n";

		install_fichier_connexion(_FILE_LDAP, $conn);
		$statuts = liste_statuts_ldap();
		$statut_ldap = defined('_INSTALL_STATUT_LDAP')
		? _INSTALL_STATUT_LDAP