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

Afin de comprendre rapidement ce qui se passe en cas de blocage à la...

Afin de comprendre rapidement ce qui se passe en cas de blocage à la restauration, on écrit plus de choses dans ces cas-là dans le Log. Et introduction d'une fonction reprenant la gestion d'echec d'authentification dans ecrire/index.php pour pouvoir la surcharger si ces Log sont encore insuffisants.
parent 31d85fd9
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -66,6 +66,7 @@ function admin_verifie_session($script, $anonymous=false) {
			if (intval(substr($valeur, strpos($valeur,'_')+1))<>
			    $GLOBALS['visiteur_session']['id_auteur']) {
				include_spip('inc/minipres');
				spip_log("refus de lancer $script, priorite a $valeur");
				return minipres(_T('info_travaux_texte'));
			}
		}
+36 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -85,6 +85,42 @@ function inc_auth_dist() {
	return $n ? $n : 1;
}

// fonction appliquee par ecrire/index sur le resultat de la precedente
// en cas de refus de connexion.
// Retourne un message a afficher ou redirige illico.

function auth_echec($raison)
{
	include_spip('inc/minipres');
	include_spip('inc/headers');
	// pas authentifie. Pourquoi ?
	if (is_string($raison)) {
		// redirection vers une page d'authentification
		// on ne revient pas de cette fonction 
		// sauf si pb de header 
		$raison = redirige_formulaire($raison);
	} elseif (is_int($raison)) {
		// erreur SQL a afficher
		$raison = minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'). "<p><tt>".sql_errno()." ".sql_error()."</tt></p>");
	} elseif (@$raison['statut']) {
		// un simple visiteur n'a pas acces a l'espace prive
		spip_log("connexion refusee a " . @$raison['id_auteur']);
		$raison = minipres(_T('avis_erreur_connexion'),_T('avis_erreur_visiteur'));
	} else {
		// auteur en fin de droits ...
		$h = $raison['site'];
		$raison = minipres(_T('avis_erreur_connexion'), 
				"<br /><br /><p>"
				. _T('texte_inc_auth_1',
				array('auth_login' => $raison['login']))
				. " <a href='$h'>"
				.  _T('texte_inc_auth_2')
				. "</a>"
				. _T('texte_inc_auth_3'));
	}
	return $raison;
}

// Retourne la description d'un authentifie par cookie ou http_auth
// Et affecte la globale $connect_login

+9 −28
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -36,32 +36,7 @@ if (autoriser_sans_cookie($exec)) {
	$auth = charger_fonction('auth', 'inc');
	$var_auth = $auth();
	if ($var_auth) { 
		include_spip('inc/minipres');
		include_spip('inc/headers');
		// pas authentifie. Pourquoi ?
		if (is_string($var_auth)) {
			// redirection vers une page d'authentification
			// on ne revient pas de cette fonction 
			// sauf si pb de header 
			$var_auth = redirige_formulaire($var_auth);
		} elseif (is_int($var_auth)) {
			// erreur SQL a afficher
			$var_auth = minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'). "<p><tt>".sql_errno()." ".sql_error()."</tt></p>");
		} elseif (@$var_auth['statut']) {
			// un simple visiteur n'a pas acces a l'espace prive
			$var_auth = minipres(_T('avis_erreur_connexion'),_T('avis_erreur_visiteur'));
		} else {
			// auteur en fin de droits ...
			$h = $var_auth['site'];
			$var_auth = minipres(_T('avis_erreur_connexion'), 
					"<br /><br /><p>"
					. _T('texte_inc_auth_1', array('auth_login' => $var_auth['login']))
					. " <a href='$h'>"
					.  _T('texte_inc_auth_2')
					. "</a>"
					. _T('texte_inc_auth_3'));
		}
		echo $var_auth;
		echo auth_echec($var_auth);
		exit;
	}
 }
@@ -103,9 +78,15 @@ AND ($GLOBALS['spip_version_base'] != (str_replace(',','.',$GLOBALS['meta']['ver
// sinon c'est qu'elle a ete interrompue et il faut la reprendre

elseif (isset($GLOBALS['meta']["admin"])) {
	if (_AJAX OR !isset($_COOKIE['spip_admin']))
	$n = preg_match('/^(.*)_(\d+)_/', $GLOBALS['meta']["admin"], $l);
	if (_AJAX OR !isset($_COOKIE['spip_admin'])) {
		spip_log("Quand la meta admin vaut " .
			 $GLOBALS['meta']["admin"] .
			 " seul un admin peut se connecter et sans AJAX." .
			 " En cas de probleme, detruire cette meta.");
		die(_T('info_travaux_texte'));
	if (preg_match('/^(.*)_(\d+)_/', $GLOBALS['meta']["admin"], $l)) {
	}
	if ($n) {
		list(,$var_f,$n) = $l;
		if ($var_f != $exec) {
			spip_log("Le script $var_f lance par $n se substitue a $exec");