From 17be4f79c6b52e1574e850f3544bad8121fcc892 Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Fri, 12 Apr 2002 09:27:35 +0000
Subject: [PATCH] gestion des erreurs dues aux droits d'ecriture : seule
 l'interdiction d'ecrire dans le CACHE est redhibitoire ; les autres erreurs
 n'envoient dans spip_test_dirs qu'a partir de l'esapce prive, et uniquement
 en cas de besoin (upload image) ou de risque securite (ecrire/data). S'il y a
 un pb dans ecrire/ (inc_meta_cache), l'admin est averti en rouge, sans que ca
 soit bloquant.

details supplementaires : distinction phase d'install/ phase
 de reparation

---
 spip_test_dirs.php3 | 83 ++++++++++++++++++++++++---------------------
 1 file changed, 44 insertions(+), 39 deletions(-)

diff --git a/spip_test_dirs.php3 b/spip_test_dirs.php3
index def64233b9..44bbc89e9c 100644
--- a/spip_test_dirs.php3
+++ b/spip_test_dirs.php3
@@ -4,54 +4,59 @@ include("ecrire/inc_version.php3");
 
 include_ecrire("inc_presentation.php3");
 
-function bad_dirs($bad_dirs) {
-		echo "
-<BR><FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\" SIZE=3>Pr&eacute;liminaire : <B>R&eacute;gler les droits d'acc&egrave;s</B></FONT>
-
-<P><B>Les r&eacute;pertoires suivants ne sont pas accessibles en &eacute;criture&nbsp;: <ul>$bad_dirs.</ul> </B>
-
-<P>Pour y rem&eacute;dier, utilisez votre client FTP afin de r&eacute;gler les droits d'acc&egrave;s de chacun
-de ces r&eacute;pertoires. La proc&eacute;dure est expliqu&eacute;e en d&eacute;tail dans le guide d'installation.
-
-<P>Une fois cette manipulation effectu&eacute;e, vous pourrez <B><A HREF='spip_test_dirs.php3'>recharger
-cette page</A> afin de commencer r&eacute;ellement l'installation.";
-
+function bad_dirs($bad_dirs, $test_dir, $install) {
+	if ($install) {
+		$titre = "Pr&eacute;liminaire : <B>R&eacute;gler les droits d'acc&egrave;s</B>";
+		$continuer = " afin de commencer r&eacute;ellement l'installation";
+	} else
+		$titre = "<b>Probl&egrave;me de droits d'acc&egrave;s</b>";
+
+	echo "<BR><FONT FACE=\"Verdana,Arial,Helvetica,sans-serif\" SIZE=3>$titre</FONT>
+		<P><B>Les r&eacute;pertoires suivants ne sont pas accessibles en &eacute;criture&nbsp;: <ul>$bad_dirs.</ul> </B>
+		<P>Pour y rem&eacute;dier, utilisez votre client FTP afin de r&eacute;gler les droits d'acc&egrave;s de chacun
+		de ces r&eacute;pertoires. La proc&eacute;dure est expliqu&eacute;e en d&eacute;tail dans le guide d'installation.
+		<P>Une fois cette manipulation effectu&eacute;e, vous pourrez <B><A HREF='spip_test_dirs.php3";
+	if ($test_dir) echo '?test_dir='.$test_dir;
+	echo "'>recharger cette page</A>$continuer.";
 }
 
 //
 // teste les droits sur les repertoires
 //
-if (!file_exists("inc_connect.php3")){
 
-	if ($test_dir)
-		$test_dirs[] = $test_dir;
-	else
-		$test_dirs = array("CACHE", "IMG", "ecrire", "ecrire/data", "ecrire/upload");
+$install = !file_exists("ecrire/inc_connect.php3");
 
+if ($test_dir)
+	$test_dirs[] = $test_dir;
+else
+	$test_dirs = array("CACHE", "IMG", "ecrire", "ecrire/data", "ecrire/upload");
 	unset($bad_dirs);
-	while (list(, $my_dir) = each($test_dirs)) {
-		$ok = true;
-		$nom_fich = "$my_dir/test.txt";
-		$f = @fopen($nom_fich, "w");
-		if (!$f) $ok = false;
-		else if (!@fclose($f)) $ok = false;
-		else if (!@unlink($nom_fich)) $ok = false;
-		
-		if (!$ok) $bad_dirs[] = "<LI>".$my_dir;
-	}
-	if ($bad_dirs) {
-
-		$bad_dirs = join(" ", $bad_dirs);
-
-		install_debut_html();
-		bad_dirs($bad_dirs);
-		
+
+while (list(, $my_dir) = each($test_dirs)) {
+	$ok = true;
+	$nom_fich = "$my_dir/test.txt";
+	$f = @fopen($nom_fich, "w");
+	if (!$f) $ok = false;
+	else if (!@fclose($f)) $ok = false;
+	else if (!@unlink($nom_fich)) $ok = false;
+	
+	if (!$ok) $bad_dirs[] = "<LI>".$my_dir;
+}
+
+if ($bad_dirs) {
+	$bad_dirs = join(" ", $bad_dirs);
+	install_debut_html();
+	bad_dirs($bad_dirs, $test_dir, $install);
+
+	if ($install)
 		echo aide ("install0");
-		
-		install_fin_html();
-		exit;
-	}
-	header("Location: ./ecrire/install.php3?etape1=oui");
+
+	install_fin_html();
+} else {
+	if ($install)
+		header("Location: ./ecrire/install.php3?etape1=oui");
+	else
+		header("Location: ./ecrire/");
 }
 
 ?>
-- 
GitLab