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

Tests d'accès en écriture plus rigoureux:

* verifier_session() ne cherche pas à créer le fichier de session correspondant au cookie: la verification échouera forcément, et en cas de vieux cookie sur une nouvelle installation, ça provoque trop tot la demande d'accès en écriture. On attend qu'ajouter_session() intervienne pour signaler le problème.

* ne pas rediriger sur la demande d'accès en écriture quand on ne peut écrire en cache: si c'est un utilisateur anonymé, il se retrouve avec une page "accès refusé" du plus mauvais effet. Il vaut mieux assurer le service avec des performances dégradées (c'est d'ailleurs peut-etre un problème de quota, pas de droits) et attendre qu'un administrateur du site tente de se connecter: la création du fichier de session, des nouvelles meta etc lui signalera le problème par une autre voie.

A noter qu'on se rapproche ainsi d'un fonctionnement de Spip sans nécessité
d'accès en écriture.
parent ad29c6c1
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+27 −30
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -73,14 +73,14 @@ function test_ecrire($my_dir) {
// http://doc.spip.org/@action_test_dirs_dist
function action_test_dirs_dist()
{
  global $test_dir, $test_dirs;
	global $test_dirs;
	$test_dir = _request('test_dir');
	$chmod = 0;

	if ($test_dir) {
		if (substr($test_dir,-1)!=='/') $test_dir .= '/';
		if (!in_array($test_dir, $test_dirs)) $test_dirs[] = $test_dir;
 }
else {
	} else {
		if (!_FILE_CONNECT)
			$test_dirs[] = dirname(_FILE_CONNECT_INS).'/';
	}
@@ -123,15 +123,12 @@ if ($bad_dirs OR $absent_dirs) {
			   array('bad_dirs' => join(" ", $absent_dirs))) .
			"<b>". _T('login_recharger')."</b>.";
	}

	$t = _T('login_recharger');
	$res = "<p>" . $continuer  . $res . aide ("install0") . "</p>" .
	  "<form action='" . generer_url_action('test_dirs') . "'>" .
	   "<input type='hidden' name='action' value='test_dirs' />" .
	  generer_test_dirs('',
		(!$test_dir ? "" : 
	   "<input type='hidden' name='test_dir' value='$test_dir' />") .
	  "<div align='right'><input type='submit' class='fondl' value='". 
	  _T('login_recharger')."' /></div>" .
	  "</form>";
		 "<input type='hidden' name='test_dir' value='$test_dir' />")
		 . "<div style='text-align: right'><input type='submit' class='fondl' value='$t' /></div>"); 
	echo minipres($titre, $res);

 } else {
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -34,7 +34,7 @@ function exec_export_all_dist()
	if (!is_writable($dir)) {
		include_spip('inc/headers');
		$dir = preg_replace(",^" . _DIR_RACINE .",", '', $dir);
		redirige_par_entete(generer_url_action("test_dirs", "test_dir=$dir", true));
		redirige_par_entete(generer_test_dirs($dir, true));
	}

	// utiliser une version fraiche des metas (ie pas le cache)
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -166,7 +166,7 @@ function ecrire_acces() {
		fclose($fichier);
	} else {
		include_spip('inc/headers');
	  redirige_par_entete(generer_url_action('test_dirs', '', true));
		redirige_par_entete(generer_test_dirs('', true));
	}

	$result = spip_query_db("SELECT login, htpass FROM spip_auteurs WHERE statut = '0minirezo'");
+3 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -146,7 +146,7 @@ function supprimer_fichier($fichier) {
// subdir valant alors ce qui suit le dernier / dans $base
//
// http://doc.spip.org/@sous_repertoire
function sous_repertoire($base, $subdir='', $nobase = false) {
function sous_repertoire($base, $subdir='', $nobase = false, $tantpis=false) {
	$base = str_replace("//", "/", $base);
	if (preg_match(',[/_]$,', $base)) $base = substr($base,0,-1);
	if (!strlen($subdir)) {
@@ -192,8 +192,9 @@ function sous_repertoire($base, $subdir='', $nobase = false) {
		if (!_DIR_RESTREINT)
			$base = preg_replace(',^' . _DIR_RACINE .',', '',$base);
		if ($test) $base .= $subdir;
		if ($tantpis) return '';
		include_spip('inc/headers');
		redirige_par_entete(generer_url_action('test_dirs',"test_dir=$base",true));
		redirige_par_entete(generer_test_dirs($base, true));
	}
	spip_log("faux sous-repertoire $base${subdir}");
	return "$baseaff${subdir}";
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -93,7 +93,7 @@ function deplacer_fichier_upload($source, $dest, $move=false) {
			fclose ($f);
		} else {
			include_spip('inc/headers');
			redirige_par_entete(generer_url_action("test_dirs", "test_dir=". dirname($dest), true));
			redirige_par_entete(generer_test_dirs(dirname($dest), true));
		}
		@unlink($dest);
	}
Chargement en cours