From b7db8eb9619c249c9c86b46e1e65a178af1bd86f Mon Sep 17 00:00:00 2001 From: James <james@rezo.net> Date: Sat, 21 Oct 2006 20:10:38 +0000 Subject: [PATCH] =?UTF-8?q?On=20d=C3=A9place=20la=20d=C3=A9finition=20de?= =?UTF-8?q?=20=5FSPIP=5FCHMOD=20dans=20un=20fichier=20=C3=A0=20part=20(il?= =?UTF-8?q?=20concerne=20le=20file=5Fsystem,=20pas=20la=20base=20de=20donn?= =?UTF-8?q?=C3=A9es)=20dans=20config/.=20Il=20s'appelle=20chmod.php,=20c'e?= =?UTF-8?q?st=20original...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ce qui marche mieux pour le surcharger dans mes_options.php, et c'est inc_version.php qui lui donne une valeur par défaut, le cas échéant. Ce fichier est crée pour une nouvelle installation. Sur une mise à jour, il ne se passe rien, on fait du 777 comme avant. config/ abrite donc potentiellement deux fichiers, ça prend son sens maintenant :)... et on pourrait imaginer que ldap soit indépendant de la même manière... mais rien ne presse... ça règle un soucis de création du cache en fichier plat aussi (cf. #635) --- ecrire/inc/utils.php | 3 --- ecrire/inc_version.php | 15 +++++++++++++++ ecrire/install/etape_1.php | 3 +++ ecrire/install/etape_4.php | 11 ++++++++++- ecrire/install/etape_5.php | 5 +++++ ecrire/install/etape_6.php | 12 ++++++++++++ 6 files changed, 45 insertions(+), 4 deletions(-) diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 832aa6ef9d..7633e15e96 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -207,9 +207,6 @@ function spip_connect($serveur='') { if (!isset($t[$serveur])) { $f = charger_fonction($serveur, 'base', true); $t[$serveur] = $f ? $f() : false; - - // on en profite pour fixer ca si absent de connect.php (hack) - define('_SPIP_CHMOD', 0777); } return $t[$serveur]; diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index 58f661cf89..6c310abd2e 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -303,6 +303,13 @@ function spip_initialisation_parametree($pi, $pa, $ti, $ta) { define('_DIR_CONFIG', $pi); + // Le fichier de definition des droits d'acces en ecriture + define('_FILE_CHMOD_INS', ($pi . "chmod")); + define('_FILE_CHMOD', + (@is_readable($f = _FILE_CHMOD_INS . '.php') ? $f + : false)); + + // Le fichier de connexion a la base de donnees define('_FILE_CONNECT_INS_ANTE_192', (_DIR_RESTREINT . "inc_connect")); define('_FILE_CONNECT_INS', ($pi . "connect")); @@ -353,6 +360,14 @@ spip_initialisation_parametree( (_DIR_RACINE . _DIRNAME_TEMPORAIRE_ACCESSIBLE) ); +if (defined('_FILE_CHMOD')) { + if (@file_exists(_FILE_CHMOD)) { + include_once(_FILE_CHMOD); + } +}else { + define('_SPIP_CHMOD', 0777); +} + // // Definitions standards (charge aussi inc/flock) // diff --git a/ecrire/install/etape_1.php b/ecrire/install/etape_1.php index c04ed92b4d..f6b01de73e 100644 --- a/ecrire/install/etape_1.php +++ b/ecrire/install/etape_1.php @@ -42,6 +42,9 @@ function install_etape_1_dist() if ($port_db = $regs[2]) $adresse_db .= ':'.$port_db; $login_db = $regs[3]; } + } + if(@file_exists(_FILE_CHMOD_INS . _FILE_TMP . '.php')){ + $s = @join('', @file(_FILE_CHMOD_INS . _FILE_TMP . '.php')); if(ereg("define\('_SPIP_CHMOD', (.*)\)", $s, $regs)) { $chmod = $regs[1]; } diff --git a/ecrire/install/etape_4.php b/ecrire/install/etape_4.php index c49197fd4c..b463947753 100644 --- a/ecrire/install/etape_4.php +++ b/ecrire/install/etape_4.php @@ -66,6 +66,16 @@ function install_etape_4_dist() } echo "($result_ok) -->"; + if($chmod) { + $conn = "<"."?php\n"; + $conn .= "if (!defined(\"_ECRIRE_INC_VERSION\")) return;\n"; + $conn .= "define('_SPIP_CHMOD', ".$chmod.");\n"; + $conn .= "?".">"; + if (!ecrire_fichier(_FILE_CHMOD_INS . _FILE_TMP . '.php', + $conn)) + redirige_par_entete(generer_url_ecrire('install')); + } + if ($result_ok) { if (preg_match(',(.*):(.*),', $adresse_db, $r)) list(,$adresse_db, $port) = $r; @@ -74,7 +84,6 @@ function install_etape_4_dist() $conn = "<"."?php\n"; $conn .= "if (!defined(\"_ECRIRE_INC_VERSION\")) return;\n"; $conn .= "\$GLOBALS['spip_connect_version'] = 0.4;\n"; - $conn .= "define('_SPIP_CHMOD', ".$chmod.");\n"; $conn .= $ligne_rappel; $conn .= "spip_connect_db(" . "'$adresse_db','$port','$login_db','$pass_db','$sel_db'" diff --git a/ecrire/install/etape_5.php b/ecrire/install/etape_5.php index 2d05daef65..80809a0886 100644 --- a/ecrire/install/etape_5.php +++ b/ecrire/install/etape_5.php @@ -22,6 +22,11 @@ function install_etape_5_dist() else redirige_par_entete(generer_url_ecrire('install')); + if (@file_exists(_FILE_CHMOD_INS . _FILE_TMP . '.php')) + include(_FILE_CHMOD_INS . _FILE_TMP . '.php'); + else + redirige_par_entete(generer_url_ecrire('install')); + echo "<BR />\n<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=3>"._T('info_informations_personnelles')."</FONT>\n"; echo "<b>"._T('texte_informations_personnelles_1')."</b>"; diff --git a/ecrire/install/etape_6.php b/ecrire/install/etape_6.php index 839a6b1747..efb18c0176 100644 --- a/ecrire/install/etape_6.php +++ b/ecrire/install/etape_6.php @@ -28,6 +28,11 @@ function install_etape_6_dist() else redirige_par_entete(generer_url_ecrire('install')); + if (@file_exists(_FILE_CHMOD_INS . _FILE_TMP . '.php')) + include(_FILE_CHMOD_INS . _FILE_TMP . '.php'); + else + redirige_par_entete(generer_url_ecrire('install')); + # maintenant on connait le vrai charset du site s'il est deja configure # sinon par defaut inc/meta reglera _DEFAULT_CHARSET # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET) @@ -78,6 +83,13 @@ function install_etape_6_dist() @unlink(_FILE_CONNECT_INS . _FILE_TMP . '.php'); } + if (!@rename(_FILE_CHMOD_INS . _FILE_TMP . '.php', + _FILE_CHMOD_INS . '.php')) { + copy(_FILE_CHMOD_INS . _FILE_TMP . '.php', + _FILE_CHMOD_INS . '.php'); + @unlink(_FILE_CHMOD_INS . _FILE_TMP . '.php'); + } + echo "<form action='./' method='post'>"; echo bouton_suivant(); echo "</FORM>"; -- GitLab