From e4b24bb346f15b23e7dcf5f71bb42175205b56ed Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Sun, 1 Jul 2007 21:17:46 +0000
Subject: [PATCH] =?UTF-8?q?Admin=5Frepair=20=C3=A9tait=20un=20d=C3=A9jant?=
 =?UTF-8?q?=C3=A9,=20il=20est=20remis=20d'aplomb=20avec=20=C3=A9vacuation?=
 =?UTF-8?q?=20de=20qq=20globales=20et=20occurrences=20de=200minirezo.=20Qu?=
 =?UTF-8?q?ant=20au=20d=C3=A9busqueur,=20les=20v=C3=A9rifications=20d'auto?=
 =?UTF-8?q?risation=20=C3=A9taient=20largement=20redondantes=20puisque=20a?=
 =?UTF-8?q?ssembler.php=20force=20l'authentification=20quand=20on=20veut?=
 =?UTF-8?q?=20l'utiliser.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/base/admin_repair.php | 1 -
 ecrire/exec/admin_repair.php | 4 +---
 ecrire/inc/admin.php         | 2 +-
 ecrire/public.php            | 3 +--
 ecrire/public/assembler.php  | 7 ++++---
 ecrire/public/debug.php      | 1 -
 6 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/ecrire/base/admin_repair.php b/ecrire/base/admin_repair.php
index b98448514c..705d2dc8ff 100644
--- a/ecrire/base/admin_repair.php
+++ b/ecrire/base/admin_repair.php
@@ -49,6 +49,5 @@ function base_admin_repair_dist() {
 	}
 	include_spip('inc/minipres');
 	echo minipres(_T('texte_tentative_recuperation'), $res);
-	exit;
 }
 ?>
diff --git a/ecrire/exec/admin_repair.php b/ecrire/exec/admin_repair.php
index f1743e306d..18276f1daa 100644
--- a/ecrire/exec/admin_repair.php
+++ b/ecrire/exec/admin_repair.php
@@ -15,13 +15,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 /*
  * REMARQUE IMPORTANTE : SECURITE
  * Ce systeme de reparation doit pouvoir fonctionner meme si
- * la table spip_auteurs est en panne : on n'appelle donc pas
+ * la table spip_auteurs est en panne : index.php n'appelle donc pas
  * inc_auth ; seule l'authentification ftp est exigee
  *
  */
 
-$GLOBALS['connect_statut'] = '0minirezo';
-$GLOBALS['connect_toutes_rubriques']= true;
 include_spip('base/db_mysql');
 
 // http://doc.spip.org/@exec_admin_repair_dist
diff --git a/ecrire/inc/admin.php b/ecrire/inc/admin.php
index 67ff75c423..6305e3ea1d 100644
--- a/ecrire/inc/admin.php
+++ b/ecrire/inc/admin.php
@@ -81,7 +81,7 @@ function debut_admin($script, $action='', $commentaire='') {
 
 	// Si on est un super-admin, un bouton de validation suffit
 	// sauf dans les cas destroy
-	if (autoriser('webmestre')
+	if ((autoriser('webmestre') OR $script === 'admin_repair')
 	AND $script != 'delete_all') {
 		if (_request('validation_admin') == $signal) {
 			spip_log ("Action super-admin: $action");
diff --git a/ecrire/public.php b/ecrire/public.php
index 23cb8b8e0c..c20b5f28a0 100644
--- a/ecrire/public.php
+++ b/ecrire/public.php
@@ -204,8 +204,7 @@ if (defined('_INC_PUBLIC')) {
 			// en cas d'erreur lors du eval,
 			// la memoriser dans le tableau des erreurs
 			// On ne revient pas ici si le nb d'erreurs > 4
-			if ($res === false AND $affiche_boutons_admin
-			AND $auteur_session['statut'] == '0minirezo') {
+			if ($res === false AND $affiche_boutons_admin) {
 				include_spip('public/debug');
 				erreur_squelette(_T('zbug_erreur_execution_page'));
 			}
diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php
index cbb62ab867..5a516c72f5 100644
--- a/ecrire/public/assembler.php
+++ b/ecrire/public/assembler.php
@@ -43,10 +43,11 @@ function public_assembler_dist($fond) {
 		reponse_confirmation($_GET['var_confirm']);
 	}
 
-	//  refus du debug si l'admin n'est pas connecte
+	//  forcer la connexion si on veut le debusqueur
 	if ($var_mode=='debug') {
-		if ($auteur_session['statut'] == '0minirezo')
-			spip_log('debug !');
+		include_spip('inc/autoriser');
+		if (autoriser('configurer'))
+			spip_log($auteur_session['nom'] . " ausculte $fond");
 		else {
 			include_spip('inc/headers');
 			redirige_par_entete(generer_url_public('login',
diff --git a/ecrire/public/debug.php b/ecrire/public/debug.php
index 05ee4eb2b0..305cf4d947 100644
--- a/ecrire/public/debug.php
+++ b/ecrire/public/debug.php
@@ -145,7 +145,6 @@ function erreur_squelette($message='', $lieu='') {
 	// Eviter les boucles infernales
 	if (++$runs > 4) {
 		if ($_COOKIE['spip_admin'] OR
-		($auteur_session['statut'] == '0minirezo') OR
 		($GLOBALS['var_mode'] == 'debug')) {
 			include_spip('inc/minipres');
 
-- 
GitLab