Bug dans dolibarr_export.php ver. 10.0.1

Bonjour à tous,
En testant la dernière version stable de dolibarr (10.0.1) je me suis rendu compte que la suppression des fichiers de sauvegarde des documents dans le menu Outils d’administration->Sauvegarde au bas de la page, partie 2 ne fonctionne pas.

En regardant dans le fichier dolibarr_export.php j’ai constaté , si j’ai bien saisi, qu’à la ligne 53 on cherche systématiquement à supprimer le fichier de sauvegarde dans le dossier backup de documents/admin alors que les documents ne s’y trouvent pas.

/*
 * Actions
 */

if ($action == 'delete')
{
        $file=$conf->admin->dir_output.'/backup/'.basename(GETPOST('urlfile', 'alpha'));
    $ret=dol_delete_file($file, 1);
    if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
    else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
    $action='';
}

$file=$conf->admin->dir_output.’/backup/’.basename(GETPOST(‹ urlfile ›, ‹ alpha ›));

Ne faudrait-il pas conditionner cette commande en fonction de l’urlfile, c’est à dire
$file=$conf->admin->dir_output.’/backup/’.basename(GETPOST(‹ urlfile ›, ‹ alpha ›)); pour les sauvegardes de la partie 1 et $file=$conf->admin->dir_output.’/documents/’.basename(GETPOST(‹ urlfile ›, ‹ alpha ›)); pour celles de la partie 2 ?

Merci d’avance pour vos réponses.

Une modification dans ce genre ne conviendrait-elle pas ?

/*
 * Actions
 */

if ($action == 'delete')
{
        if (preg_match('#backup/#', GETPOST('urlfile', 'alpha'))) {
                $file=$conf->admin->dir_output.'/backup/'.basename(GETPOST('urlfile', 'alpha'));
           $ret=dol_delete_file($file, 1);
           if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
           else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
        }

        else {
                $file=$conf->admin->dir_output.'/documents/'.basename(GETPOST('urlfile', 'alpha'));
           $ret=dol_delete_file($file, 1);
           if ($ret) setEventMessages($langs->trans("FileWasRemoved", GETPOST('urlfile')), null, 'mesgs');
           else setEventMessages($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), null, 'errors');
        }

    $action='';

}

Qu’en pensez-vous ?

@schhub

à proposer sur le github : le forum est plus un lieu d’échange et de conseil. (pas d’échange ou de proposition de code)

en passant : il y a un problème à l’étape 2, qui sauvegarde aussi le contenu de /document/admin/documents… d’où des sauvegardes avec un poids exponentiel (les dernière archives de sauvegardes étant… sauvegardées)
si tu peux signaler ça en même temps : un grand merci :happy:

Merci pour les infos Arre.

Je vais aller voir sur github.

Par contre j’ai vérifié dans mes sauvegardes le dossier documents de documents/admin n’est pas inclus, le poids n’augmente pas ou plus à l’heure actuelle.

Dans le fichier export_files.php qui est utilisé pour sauvegarder les documents, le dossier semble bien exclu :

   
 $cmd = 'tar -cf '.$outputdir."/".$file." --exclude=documents/admin/documents -C ".DOL_DATA_ROOT." ".DOL_DATA_ROOT."/../documents/";

ah… ça a du changer en V10, j’ai aucune instance autre que les test >9.0.4 ^^
merci pour l’info :happy:

J’ai proposé une modification sur github pour corriger ce bug: