diff --git a/ecrire/config-fonctions.php3 b/ecrire/config-fonctions.php3 index 3d845f4b34f34669e98e27abebc99c9677f3bedd..fa1080553db4e9dabff1b34391a2fea7e4c79104 100644 --- a/ecrire/config-fonctions.php3 +++ b/ecrire/config-fonctions.php3 @@ -395,35 +395,59 @@ fin_cadre_trait_couleur(); } -###### ATTENTION EXPERIMENTAL: -# l'option htpasswd est remplacee par la securisation des IMG/* + // // Creer fichier .htpasswd ? // if ($options == "avancees" AND !@file_exists('.htaccess') AND !$REMOTE_USER ) { -# include_ecrire ("inc_acces.php3"); -# ecrire_acces(); + include_ecrire ("inc_acces.php3"); + ecrire_acces(); debut_cadre_trait_couleur("cadenas-24.gif", false, "", - #_T('info_fichiers_authent') - _L("accès aux document joints par leur URL")); + _T('info_fichiers_authent')); + $creer_htpasswd = lire_meta("creer_htpasswd"); + echo "<div class='verdana2'>", _T('texte_fichier_authent'), "</div>"; + + echo "<div class='verdana2'>"; + afficher_choix('creer_htpasswd', $creer_htpasswd, + array('oui' => _T('item_creer_fichiers_authent'), + 'non' => _T('item_non_creer_fichiers_authent')), + ' '); + echo "</div>"; + echo "<div style='text-align:$spip_lang_right'><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'></div>"; + +fin_cadre_trait_couleur(); + + echo "<p>"; +} + +###### ATTENTION EXPERIMENTAL: + +// +// Creer fichier .htaccess dans les répertoires de documents +// + +if ($options == "avancees" AND !$REMOTE_USER ) { + +debut_cadre_trait_couleur("cadenas-24.gif", false, "", + _L("Accès aux document joints par leur URL")); +# include_ecrire ("inc_acces.php3"); vient d'etre fait + $creer_htaccess = gerer_htaccess(); + echo "<div class='verdana2'>"; -# echo _T('texte_fichier_authent'); echo _L("Cette option interdit la lecture des documents joints si le texte auquel ils se rattachent n'est pas publié"); echo "</div>"; echo "<div class='verdana2'>"; - afficher_choix('creer_htpasswd', $creer_htpasswd, + afficher_choix('creer_htaccess', $creer_htaccess, array('oui' => _L("interdire la lecture"), - #_T('item_creer_fichiers_authent'), 'non' => _L("autoriser la lecture")), -# _T('item_non_creer_fichiers_authent')), - ' '); + ' '); echo "</div>"; echo "<div style='text-align:$spip_lang_right'><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_valider')."' CLASS='fondo'></div>"; diff --git a/ecrire/inc_acces.php3 b/ecrire/inc_acces.php3 index de0df2c8ff52aab62bc12ccc86a24dc7b7bc7f6d..b071def3e247cc336faea3372bffea2102f315b5 100644 --- a/ecrire/inc_acces.php3 +++ b/ecrire/inc_acces.php3 @@ -128,6 +128,20 @@ function generer_htpass($pass) { else return ''; } +function gerer_htaccess() +{ + $mode = lire_meta('creer_htaccess'); + $r = spip_query("SELECT extension FROM spip_types_documents"); + while ($e = spip_fetch_array($r)) { + spip_log(_DIR_DOC . $e['extension']); + if (is_dir($dir = _DIR_DOC . $e['extension'])) { + if ($mode == 'oui') + verifier_htaccess($dir); + else @unlink("$dir/.htaccess"); + } + } + return $mode; +} initialiser_sel(); diff --git a/ecrire/inc_config.php3 b/ecrire/inc_config.php3 index 9232253e7042e2372026fe453ad50707cd26f902..c880d5139959b2ebed990c8c42eb2d481659a4dd 100644 --- a/ecrire/inc_config.php3 +++ b/ecrire/inc_config.php3 @@ -60,6 +60,7 @@ function init_config() { 'charset' => 'iso-8859-1', 'creer_htpasswd' => 'non', + 'creer_htaccess' => 'non', 'langue_site' => $lang, @@ -263,7 +264,8 @@ function appliquer_modifs_config() { // modifs de secu (necessitent une authentification ftp) $liste_meta = array( // 'secu_avertissement', // n'existe plus ! - 'creer_htpasswd' + 'creer_htpasswd', + 'creer_htaccess' ); while (list(,$i) = each($liste_meta)) if (isset($GLOBALS[$i]) AND ($GLOBALS[$i] != lire_meta($i))) diff --git a/ecrire/inc_urls.php3 b/ecrire/inc_urls.php3 index 2126ae02e2dcbba444740229956a1502577e6ac1..47337dde3205626e08163a46fc97dbc8797f0c0a 100644 --- a/ecrire/inc_urls.php3 +++ b/ecrire/inc_urls.php3 @@ -51,7 +51,7 @@ function generer_url_auteur($id_auteur) { function generer_url_document($id_document) { if (intval($id_document) <= 0) return ''; - if ((lire_meta("creer_htpasswd")) == 'oui') + if ((lire_meta("creer_htaccess")) == 'oui') return "../spip_acces_doc.php3?id_document=$id_document"; if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"))) return '../' . ($row['fichier']); diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3 index b9b0b7abbc4b5206b1707ceb0a76f4f8ea4eac51..a0e11a4443db6eebfeddb3c09f7aca458d76b6e7 100644 --- a/ecrire/inc_version.php3 +++ b/ecrire/inc_version.php3 @@ -995,7 +995,10 @@ function creer_repertoire($base, $subdir) { function creer_repertoire_documents($ext) { # est-il bien raisonnable d'accepter de creer si creer_rep retourne '' ? - return _DIR_DOC . creer_repertoire(_DIR_DOC, $ext); + $dir = _DIR_DOC . creer_repertoire(_DIR_DOC, $ext); + // mode parano: verifier a chaque fois + if (lire_meta("creer_htaccess") == 'oui') verifier_htaccess($dir); + return $dir; } // Pour les documents comme pour les logos, le filtre |fichier donne diff --git a/inc-balises.php3 b/inc-balises.php3 index 8ee63eb81e6f35fc716bbca49c9b9f88b2de48fa..e27be55e824909b7bd3ee232a70f7e87268e7ea9 100644 --- a/inc-balises.php3 +++ b/inc-balises.php3 @@ -538,7 +538,6 @@ function calcul_balise_logo ($p) { eregi("^LOGO_([A-Z]+)(_.*)?$", $p->nom_champ, $regs); $type_objet = $regs[1]; $suite_logo = $regs[2]; - spip_log($suite_logo); if (ereg("^_SPIP(.*)$", $suite_logo, $regs)) { $type_objet = 'RUBRIQUE'; $suite_logo = $regs[1]; diff --git a/inc-urls-html.php3 b/inc-urls-html.php3 index 6a6194e7045c5777e25876b1fae2076176706947..a0927a46af8f6e325226099834c2746f1fdaf6e5 100644 --- a/inc-urls-html.php3 +++ b/inc-urls-html.php3 @@ -27,7 +27,7 @@ function generer_url_auteur($id_auteur) { function generer_url_document($id_document) { if (intval($id_document) <= 0) return ''; - if ((lire_meta("creer_htpasswd")) == 'oui') + if ((lire_meta("creer_htaccess")) == 'oui') return "spip_acces_doc.php3?id_document=$id_document"; if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"))) return ($row['fichier']); diff --git a/inc-urls-standard.php3 b/inc-urls-standard.php3 index eafaff3ef3caafc74d5ef809c76fc76d53881acd..8723591f1886dd5a89f2788f0553b8753bde4d8c 100644 --- a/inc-urls-standard.php3 +++ b/inc-urls-standard.php3 @@ -27,7 +27,7 @@ function generer_url_auteur($id_auteur) { function generer_url_document($id_document) { if (intval($id_document) <= 0) return ''; - if ((lire_meta("creer_htpasswd")) == 'oui') + if ((lire_meta("creer_htaccess")) == 'oui') return "spip_acces_doc.php3?id_document=$id_document"; if ($row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"))) return ($row['fichier']); diff --git a/spip_image.php3 b/spip_image.php3 index b2b7c7621afac381a409855a58d006fbe90090e0..c1dc433c328888016e32bb4f9e52aa18ee8dac9c 100644 --- a/spip_image.php3 +++ b/spip_image.php3 @@ -12,11 +12,6 @@ function copier_document($ext, $orig, $source) { ereg_replace("[^.a-zA-Z0-9_=-]+", "_", translitteration(ereg_replace("\.([^.]+)$", "", ereg_replace("<[^>]*>", '', basename($orig))))); - // a améliorer au plus vite - $secure = lire_meta("creer_htpasswd") == 'oui'; - if ($secure) - verifier_htaccess($dir); - else @unlink("$dir/.htaccess"); # bien vu ? if ($orig == ($dest . '.' . $ext)) return $orig;