From 1abc87f64294269831f1cd5ece0e5323ef680aa9 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 3 Sep 2012 17:14:33 +0200 Subject: [PATCH] Fix: can delete an import file with dialog confirm --- htdocs/core/lib/security.lib.php | 3 ++- htdocs/imports/import.php | 26 ++++++++++++++++++++------ htdocs/langs/en_US/other.lang | 1 + htdocs/langs/fr_FR/other.lang | 2 ++ 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/htdocs/core/lib/security.lib.php b/htdocs/core/lib/security.lib.php index 5460f0f3771..6fc1cdb2697 100644 --- a/htdocs/core/lib/security.lib.php +++ b/htdocs/core/lib/security.lib.php @@ -271,7 +271,8 @@ function restrictedArea($user, $features, $objectid=0, $dbtablename='', $feature { //print '
feature='.$feature.' creer='.$user->rights->$feature->supprimer.' write='.$user->rights->$feature->delete; if (empty($user->rights->$feature->supprimer) - && empty($user->rights->$feature->delete)) $deleteok=0; + && empty($user->rights->$feature->delete) + && empty($user->rights->$feature->run)) $deleteok=0; } } diff --git a/htdocs/imports/import.php b/htdocs/imports/import.php index 5b28b54af5a..c79126cbed9 100644 --- a/htdocs/imports/import.php +++ b/htdocs/imports/import.php @@ -206,9 +206,25 @@ if ($step == 3 && $datatoimport) else { $langs->load("errors"); - $mesg = $langs->trans("ErrorFailedToSaveFile"); + setEventMessage($langs->trans("ErrorFailedToSaveFile"), 'errors'); } } + + // Delete file + if ($action == 'confirm_deletefile' && $confirm == 'yes') + { + $langs->load("other"); + + $param='&datatoimport='.$datatoimport.'&format='.$format; + if ($excludefirstline) $param.='&excludefirstline=1'; + + $file = $conf->import->dir_temp . '/' . GETPOST('urlfile'); // Do not use urldecode here ($_GET and $_REQUEST are already decoded by PHP). + $ret=dol_delete_file($file); + if ($ret) setEventMessage($langs->trans("FileWasRemoved", GETPOST('urlfile'))); + else setEventMessage($langs->trans("ErrorFailToDeleteFile", GETPOST('urlfile')), 'errors'); + Header('Location: '.$_SERVER["PHP_SELF"].'?step='.$step.$param); + exit; + } } if ($step == 4 && $action == 'select_model') @@ -306,7 +322,7 @@ if ($step == 1 || ! $datatoimport) $array_match_file_to_database=array(); $_SESSION["dol_array_match_file_to_database"]=''; - $parm=''; + $param=''; if ($excludefirstline) $param.='&excludefirstline=1'; llxHeader('',$langs->trans("NewImport"),'EN:Module_Imports_En|FR:Module_Imports|ES:Módulo_Importaciones'); @@ -448,7 +464,7 @@ if ($step == 3 && $datatoimport) llxHeader('',$langs->trans("NewImport"),'EN:Module_Imports_En|FR:Module_Imports|ES:Módulo_Importaciones'); - $head = import_prepare_head($param,3); + $head = import_prepare_head($param, 3); dol_fiche_head($head, 'step3', $langs->trans("NewImport")); @@ -543,8 +559,6 @@ if ($step == 3 && $datatoimport) print ''; print ''.img_mime($file).''; print ''; - $modulepart='import'; - //$relativepath=$filetoimport; print ''; print $file; print ''; @@ -558,7 +572,7 @@ if ($step == 3 && $datatoimport) print '">'.img_delete().''; // Action button print ''; - print ''.img_picto($langs->trans("NewImport"),'filenew').''; + print ''.img_picto($langs->trans("NewImport"),'filenew').''; print ''; print ''; } diff --git a/htdocs/langs/en_US/other.lang b/htdocs/langs/en_US/other.lang index 324a0e24ee6..7587bdc12d5 100644 --- a/htdocs/langs/en_US/other.lang +++ b/htdocs/langs/en_US/other.lang @@ -169,6 +169,7 @@ AddFiles=Add Files StartUpload=Start upload CancelUpload=Cancel upload FileIsTooBig=Files is too big +PleaseBePatient=Please be patient... ##### Calendar common ##### AddCalendarEntry=Add entry in calendar %s diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 670940a8a10..bb43e302431 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -168,6 +168,8 @@ AddFiles=Ajouter des fichiers StartUpload=Transférer CancelUpload=Annuler le transfert FileIsTooBig=Le fichier est trop volumineux +PleaseBePatient=Merci de patienter quelques instants... + ##### Calendar common ##### AddCalendarEntry=Ajouter entrée dans le calendrier %s NewCompanyToDolibarr=Société %s ajoutée dans Dolibarr