On ajoute un 4 arg à bigform_traiter (false par defaut),
qui permet de deplacer les fichiers dans un dossiers proteger
This commit is contained in:
parent
a82ea8f707
commit
f08682bed9
5 changed files with 62 additions and 4 deletions
12
base/bigform.php
Normal file
12
base/bigform.php
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function bigform_declarer_tables_principales($tables_principales){
|
||||||
|
|
||||||
|
$tables_principales['spip_documents']['field']['protected'] = 'varchar(5) NOT NULL';
|
||||||
|
|
||||||
|
return $tables_principales;
|
||||||
|
}
|
|
@ -33,6 +33,7 @@ function bigform_upgrade($nom_meta_base_version, $version_cible) {
|
||||||
|
|
||||||
$maj['create'] = [['ecrire_meta', 'bigup', serialize($config_defaut)]];
|
$maj['create'] = [['ecrire_meta', 'bigup', serialize($config_defaut)]];
|
||||||
$maj['1.0.1'] = [['ecrire_meta', 'bigup', serialize($config_defaut)]];
|
$maj['1.0.1'] = [['ecrire_meta', 'bigup', serialize($config_defaut)]];
|
||||||
|
$maj['1.0.3'] = [['maj_tables', ['spip_documents']]];
|
||||||
|
|
||||||
include_spip('base/upgrade');
|
include_spip('base/upgrade');
|
||||||
maj_plugin($nom_meta_base_version, $version_cible, $maj);
|
maj_plugin($nom_meta_base_version, $version_cible, $maj);
|
||||||
|
|
39
inc/bigform_securiser_doc.php
Normal file
39
inc/bigform_securiser_doc.php
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
<?php
|
||||||
|
if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function bigform_securiser_doc($Tid_doc){
|
||||||
|
$rep = sous_repertoire(_DIR_IMG, 'PROTECTED');
|
||||||
|
$content = "# Deny all requests from Apache 2.4+.
|
||||||
|
<IfModule mod_authz_core.c>
|
||||||
|
Require all denied
|
||||||
|
</IfModule>
|
||||||
|
# Deny all requests from Apache 2.0-2.2.
|
||||||
|
<IfModule !mod_authz_core.c>
|
||||||
|
Deny from all
|
||||||
|
</IfModule>";
|
||||||
|
|
||||||
|
if (!verifier_htaccess($rep . "/.htaccess")) {
|
||||||
|
ecrire_fichier($rep . "/.htaccess", $content);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($Tid_doc as $id) {
|
||||||
|
if (intval($id)) {
|
||||||
|
$r = sql_fetsel('extension, fichier','spip_documents','id_document='.intval($id));
|
||||||
|
$fichier = $r['fichier'];
|
||||||
|
$ext = $r['extension'];
|
||||||
|
sous_repertoire(_DIR_IMG . 'PROTECTED', $ext);
|
||||||
|
if ($fichier) {
|
||||||
|
$source = _DIR_IMG . "/" . $fichier;
|
||||||
|
if (file_exists($source)) {
|
||||||
|
$d = deplacer_fichier_upload($source, _DIR_IMG . 'PROTECTED/' . $fichier, true);
|
||||||
|
if ($d) {
|
||||||
|
sql_updateq('spip_documents',['protected' => 'oui'], 'id_document='.$id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,7 +11,7 @@ if (!defined('_ECRIRE_INC_VERSION')){
|
||||||
* @param $mode
|
* @param $mode
|
||||||
* @return array tableau des id_document $Tid_doc
|
* @return array tableau des id_document $Tid_doc
|
||||||
*/
|
*/
|
||||||
function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode='auto') {
|
function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode='auto', $secu = false) {
|
||||||
include_spip('inc/joindre_document');
|
include_spip('inc/joindre_document');
|
||||||
set_request('joindre_upload','ok');
|
set_request('joindre_upload','ok');
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode='auto') {
|
||||||
|
|
||||||
// calcul ordre des titres des files uploades
|
// calcul ordre des titres des files uploades
|
||||||
$lesTitres = [];
|
$lesTitres = [];
|
||||||
if (is_array($files)){
|
if (is_array($files) and is_array($html_ordre)){
|
||||||
foreach ($files as $i => $t) {
|
foreach ($files as $i => $t) {
|
||||||
$index = array_search($t['name'], $html_ordre);
|
$index = array_search($t['name'], $html_ordre);
|
||||||
$lesTitres[] = $html_titre[$index];
|
$lesTitres[] = $html_titre[$index];
|
||||||
|
@ -53,6 +53,11 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode='auto') {
|
||||||
if (is_array($files) and count($files)) {
|
if (is_array($files) and count($files)) {
|
||||||
$ajouter_document = charger_fonction('ajouter_documents', 'action');
|
$ajouter_document = charger_fonction('ajouter_documents', 'action');
|
||||||
$Tid_doc = $ajouter_document('new', $files, $objet, $id_objet,$mode);
|
$Tid_doc = $ajouter_document('new', $files, $objet, $id_objet,$mode);
|
||||||
|
|
||||||
|
if (is_array($Tid_doc) and count($Tid_doc) and $secu) {
|
||||||
|
include_spip('inc/bigform_securiser_doc');
|
||||||
|
bigform_securiser_doc($Tid_doc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// si tout s'est bien passé, on supprime le/les anciens logos
|
// si tout s'est bien passé, on supprime le/les anciens logos
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
<paquet
|
<paquet
|
||||||
prefix="bigform"
|
prefix="bigform"
|
||||||
categorie="edition"
|
categorie="edition"
|
||||||
version="1.0.5"
|
version="1.0.7"
|
||||||
etat="dev"
|
etat="dev"
|
||||||
compatibilite="[3.2.5;3.3.*]"
|
compatibilite="[3.2.5;3.3.*]"
|
||||||
logo="prive/themes/spip/images/bigform-64.png"
|
logo="prive/themes/spip/images/bigform-64.png"
|
||||||
documentation=""
|
documentation=""
|
||||||
schema="1.0.1"
|
schema="1.0.3"
|
||||||
>
|
>
|
||||||
|
|
||||||
<nom>BigForm</nom>
|
<nom>BigForm</nom>
|
||||||
|
@ -19,6 +19,7 @@
|
||||||
<necessite nom="bigup" compatibilite="[1.0.0;[" />
|
<necessite nom="bigup" compatibilite="[1.0.0;[" />
|
||||||
|
|
||||||
<pipeline nom="autoriser" inclure="bigform_autorisations.php" />
|
<pipeline nom="autoriser" inclure="bigform_autorisations.php" />
|
||||||
|
<pipeline nom="declarer_tables_principales" inclure="base/bigform.php" />
|
||||||
|
|
||||||
|
|
||||||
</paquet>
|
</paquet>
|
||||||
|
|
Loading…
Add table
Reference in a new issue