From be1fa791980b645110beaa283aa35ecff52c2db6 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Sun, 9 Dec 2007 13:10:19 +0000
Subject: [PATCH] =?UTF-8?q?Bug=20=C3=A0=20la=20reprise=20de=20restauration?=
 =?UTF-8?q?:=20les=20meta=20ne=20repla=C3=A7aient=20pas=20toujours=20les?=
 =?UTF-8?q?=20infos=20dans=20les=20bonnes=20variables.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/exec/import_all.php |  9 +++++----
 ecrire/inc/admin.php       | 12 +++++-------
 2 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/ecrire/exec/import_all.php b/ecrire/exec/import_all.php
index 07b2761366..bcba8517ab 100644
--- a/ecrire/exec/import_all.php
+++ b/ecrire/exec/import_all.php
@@ -24,17 +24,18 @@ include_spip('inc/headers');
 function exec_import_all_dist()
 {
 	$archive=_request('archive');
-	if (!strlen($archive)) $archive=_request('archive_perso');
-	$request = @unserialize($GLOBALS['meta']['import_all']);
-
+	if (!strlen($archive)) {
+		$_POST['archive'] = $archive = _request('archive_perso');
+	}
 	if ($archive) {
 		$dir = import_queldir();
 		$_POST['dir'] = $dir;
 		$commentaire = verifier_sauvegarde($dir . $archive);
 		$insert = _request('insertion');
-	} elseif ($archive = isset($GLOBALS['meta']['import_all'])) {
+	} elseif (isset($GLOBALS['meta']['import_all'])) {
 		$request = @unserialize($GLOBALS['meta']['import_all']);
 		$insert = $request['insertion'];
+		$archive = $request['archive'];
 		$commentaire = '';
 	}
 	if ($archive) {
diff --git a/ecrire/inc/admin.php b/ecrire/inc/admin.php
index 9efaa4648e..66808bf51e 100644
--- a/ecrire/inc/admin.php
+++ b/ecrire/inc/admin.php
@@ -29,10 +29,8 @@ function inc_admin_dist($script, $titre, $comment='', $anonymous=false)
 		ecrire_meta($script, serialize($_POST));
 	} 
 
-	if  (!$anonymous) {
-		$res = admin_verifie_session($script);
-		if ($res) return $res;
-	}
+	$res = admin_verifie_session($script,$anonymous);
+	if ($res) return $res;
 	$base = charger_fonction($script, 'base');
 	$base($titre,$reprise);
 	fin_admin($script);
@@ -55,16 +53,16 @@ function inc_admin_dist($script, $titre, $comment='', $anonymous=false)
 // 	c'est que l'operation se passe mal, on la stoppe
 
 // http://doc.spip.org/@admin_verifie_session
-function admin_verifie_session($script) {
+function admin_verifie_session($script, $anonymous=false) {
 
 	include_spip('base/abstract_sql');
 	$pref = sprintf("_%d_",$GLOBALS['visiteur_session']['id_auteur']);
 	$signal = fichier_admin($script, "$script$pref");
 	$valeur = sql_getfetsel('valeur', 'spip_meta', "nom='admin'");
 	if ($valeur === NULL) {
-		ecrire_meta('admin', $signal,'non');
+		ecrire_meta('admin', $signal, 'non');
 	} else {
-		if ($valeur != $signal) {
+		if (!$anonymous AND ($valeur != $signal)) {
 			if (intval(substr($valeur, strpos($valeur,'_')+1))<>
 			    $GLOBALS['visiteur_session']['id_auteur']) {
 				include_spip('inc/minipres');
-- 
GitLab