ajout la possibilité d'obfusquer les noms des documents

This commit is contained in:
Christophe 2021-07-05 15:28:47 +02:00
parent e86c611ed5
commit ba251ee614
3 changed files with 56 additions and 2 deletions

View file

@ -45,9 +45,17 @@ $bigform($options,$erreurs);
$bigform = charger_fonction('bigform_traiter','inc');
$bigform($id_objet, $objet);
// Ou pour proteger les documents
// Pour proteger les documents
$bigform = charger_fonction('bigform_traiter','inc');
$bigform($id_objet, $objet, $mode, true);
// Pour obfusquer les noms des documents
$bigform = charger_fonction('bigform_traiter','inc');
$bigform($id_objet, $objet, $mode, false, true);
// ou definir la constante pour l'avoir dans tous les formulaires:
define('_BIGFORM_OBFUSQUER', true);
```
> **ATTENTION**
> Il faut ajouter les vérifications pour les différents types de fichiers

View file

@ -0,0 +1,35 @@
<?php
if (!defined('_ECRIRE_INC_VERSION')){
return;
}
/**
* Permet d'obfusquer le nom d'un document
*
* @param array $Tid_doc
*
* @return void
*
*/
function bigform_obfusquer_doc($Tid_doc){
foreach ($Tid_doc as $id) {
if (intval($id)) {
$r = sql_fetsel('extension, fichier','spip_documents','id_document='.intval($id));
$ext = $r['extension'];
$fichier = $r['fichier'];
$fichier_ob = $ext ."/". md5($fichier) . ".".$ext;
if ($fichier) {
$source = _DIR_IMG . "/" . $fichier;
$dest = _DIR_IMG . "/" . $fichier_ob;
if (file_exists($source)) {
$d = deplacer_fichier_upload($source, $dest, true);
if ($d) {
sql_updateq('spip_documents',['fichier' => $fichier_ob], 'id_document='.$id);
}
}
}
}
}
}

View file

@ -11,7 +11,7 @@ if (!defined('_ECRIRE_INC_VERSION')){
* @param $mode
* @return array tableau des id_document $Tid_doc
*/
function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', $secu = false) {
function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto', $secu = false, $obfusquer = false) {
include_spip('inc/joindre_document');
include_spip('inc/autoriser');
@ -71,6 +71,17 @@ function inc_bigform_traiter_dist($id_objet, $objet = 'article', $mode = 'auto',
include_spip('inc/bigform_securiser_doc');
bigform_securiser_doc($Tid_doc);
}
if (is_array($Tid_doc) and count($Tid_doc) and $obfusquer) {
include_spip('inc/bigform_obfusquer_doc');
bigform_obfusquer_doc($Tid_doc);
}
if (is_array($Tid_doc) and count($Tid_doc) and defined('_BIGFORM_OBFUSQUER')) {
include_spip('inc/bigform_obfusquer_doc');
bigform_obfusquer_doc($Tid_doc);
}
}
// si tout s'est bien passé, on supprime le/les anciens logos