From 9d966275958d9bc298f6ddf673b5f6e1255bd591 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Fri, 26 Sep 2008 14:42:48 +0000
Subject: [PATCH] =?UTF-8?q?La=20cr=C3=A9ation=20de=20sauvegardes=20rendait?=
 =?UTF-8?q?=20mal=20compte=20du=20DIR=5FIMG=20du=20site=20sauvegard=C3=A9,?=
 =?UTF-8?q?=20suite=20=C3=A0=20l'ex=C3=A9cution=20de=20l'action=20d'initia?=
 =?UTF-8?q?lisation=20au=20niveau=20de=20ecrire/=20alors=20qu'elle=20expli?=
 =?UTF-8?q?citement=20l=C3=A0=20pour=20calculer=20le=20bon=20DIR=5FIMG.=20?=
 =?UTF-8?q?Comme=20{{{=20generer=5Furl=5Faction=20}}}=20avait=20son=204e?=
 =?UTF-8?q?=20param=C3=A8tre=20qui=20ne=20servait=20plus,=20il=20reprend?=
 =?UTF-8?q?=20du=20service=20en=20tant=20qu'il=20force=20la=20production?=
 =?UTF-8?q?=20d'une=20URL=20d'espace=20public.=20Cons=C3=A9quence=20en=20r?=
 =?UTF-8?q?afale=20sur=20les=20appelants=20de=20cette=20fonction.=20Du=20c?=
 =?UTF-8?q?oup,=20les=20sauvegardes=20sauvent=20=C3=A0=20nouveau=20bien=20?=
 =?UTF-8?q?DIR=5FIMG.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ecrire/exec/export_all.php      | 2 +-
 ecrire/inc/securiser_action.php | 6 +++---
 ecrire/inc/utils.php            | 6 ++++--
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/ecrire/exec/export_all.php b/ecrire/exec/export_all.php
index 951e57b5a5..c696da0eba 100644
--- a/ecrire/exec/export_all.php
+++ b/ecrire/exec/export_all.php
@@ -33,7 +33,7 @@ function exec_export_all_dist()
 		// creer l'en tete du fichier a partir de l'espace public
 		// creer aussi la meta
 			include_spip('inc/headers');
-			redirige_par_entete(generer_action_auteur("export_all", "start,$gz,$archive,$rub", '', true));
+			redirige_par_entete(generer_action_auteur("export_all", "start,$gz,$archive,$rub", '', true, true));
 		} else {
 			$f = charger_fonction('accueil');
 			$f();
diff --git a/ecrire/inc/securiser_action.php b/ecrire/inc/securiser_action.php
index 82439f8695..0f344da5d1 100644
--- a/ecrire/inc/securiser_action.php
+++ b/ecrire/inc/securiser_action.php
@@ -36,7 +36,7 @@ function inc_securiser_action_dist($action='', $arg='', $redirect="", $mode=fals
 // Attention: PHP applique urldecode sur $_GET mais pas sur $_POST
 // cf http://fr.php.net/urldecode#48481
 // http://doc.spip.org/@securiser_action_auteur
-function securiser_action_auteur($action, $arg, $redirect="", $mode=false, $att='')
+function securiser_action_auteur($action, $arg, $redirect="", $mode=false, $att)
 {
 	static $id_auteur=0, $pass;
 	if (!$id_auteur) {
@@ -48,10 +48,10 @@ function securiser_action_auteur($action, $arg, $redirect="", $mode=false, $att=
 		if ($mode===-1)
 			return array('action'=>$action,'arg'=>$arg,'hash'=>$hash);
 		else
-			return generer_url_action($action, "arg=$arg&hash=$hash" . (!$r ? '' : "&redirect=$r"), $mode);
+			return generer_url_action($action, "arg=$arg&hash=$hash" . (!$r ? '' : "&redirect=$r"), $mode, $att);
 	}
 
-	$att .=	" style='margin: 0px; border: 0px'";
+	$att .= " style='margin: 0px; border: 0px'";
 	if ($redirect)
 		$redirect = "\n\t\t<input name='redirect' type='hidden' value='". str_replace("'", '&#39;', $redirect) ."' />";
 	$mode .= $redirect . "
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 0e93044c9e..d2f42907c5 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -956,11 +956,13 @@ function generer_form_action($script, $corps, $atts='') {
 }
 
 // http://doc.spip.org/@generer_url_action
-function generer_url_action($script, $args="", $no_entities=false ,$rel = false) {
+function generer_url_action($script, $args="", $no_entities=false , $public = false) {
 	// si l'on est dans l'espace prive, on garde dans l'url
 	// l'exec a l'origine de l'action, qui permet de savoir si il est necessaire
 	// ou non de proceder a l'authentification (cas typique de l'install par exemple)
-	$url = _DIR_RACINE  ? generer_url_ecrire(_request('exec')) :  generer_url_public();
+	$url = (_DIR_RACINE  AND !$public)
+	  ? generer_url_ecrire(_request('exec'))
+	  :  generer_url_public();
 	$url = parametre_url($url,'action',$script);
 	if ($args) $url .= quote_amp('&'.$args);
 	
-- 
GitLab