bug déplacement fichiers

This commit is contained in:
afornerot 2021-04-08 10:28:24 +02:00
parent f621ebea82
commit 150e624fca
3 changed files with 34 additions and 14 deletions

View File

@ -527,12 +527,14 @@ class FileController extends Controller
$output=array(); $output=array();
$directory=$request->request->get('directory'); $directory=$request->request->get('directory');
// Récupération du répertoire source et le nom du fichier // Récupération du répertoire source et le nom du fichier
$racine=$this->get('kernel')->getRootDir()."/../uploads/file"; $racine=$this->get('kernel')->getRootDir()."/../uploads/file";
$dirsource =$request->request->get('dirsource'); $directory = $request->request->get('directory');
$namesource =$request->request->get('namesource'); $dirsource = $request->request->get('dirsource');
$dirdestination =$request->request->get('dirdestination'); $namesource = $request->request->get('namesource');
$namedestination =$request->request->get('namedestination'); $dirdestination = $request->request->get('dirdestination');
$namedestination = $request->request->get('namedestination');
$canupdate =$this->getPermission($access,$directory); $canupdate =$this->getPermission($access,$directory);
@ -541,8 +543,19 @@ class FileController extends Controller
$fs = new Filesystem(); $fs = new Filesystem();
// Déplacer le fichier // Déplacer le fichier
$urlsource=$racine."/".$dirsource."/".$namesource; $urlsource=str_replace("//","/",$racine."/".$dirsource."/".$namesource);
$urldestination=$racine."/".$dirdestination."/".$namedestination; $urldestination=str_replace("//","/",$racine."/".$dirdestination."/".$namedestination);
// Controle de cohérance du déplacement
$fgerror=false;
if(empty($racine)) $fgerror=true;
if(empty($dirsource)) $fgerror=true;
if(empty($directory)) $fgerror=true;
if($urlsource==$urldestination) $fgerror=true;
if(stripos($urldestination,$urlsource)!==false) $fgerror=true;
if($fgerror) return new JsonResponse(array('message' => 'Interdit'), 400);
if($fs->exists($urlsource)) { if($fs->exists($urlsource)) {
if(is_dir($urlsource)) { if(is_dir($urlsource)) {
$fs->mirror($urlsource,$urldestination); $fs->mirror($urlsource,$urldestination);

View File

@ -291,6 +291,7 @@
}); });
{% if canupdate and not fgtrash %}
$('.file').on('dragstart', function (s) { $('.file').on('dragstart', function (s) {
dirsource=$(this).data("dir"); dirsource=$(this).data("dir");
namesource=$(this).data("name"); namesource=$(this).data("name");
@ -313,11 +314,17 @@
dirdestination=$(this).data("dir")+"/"+$(this).data("name"); dirdestination=$(this).data("dir")+"/"+$(this).data("name");
namedestination=namesource; namedestination=namesource;
// Si la source est la meme que la destination on ne fait rien urlsource=dirsource+"/"+namesource;
if(dirdestination+"/"+namedestination==dirsource+"/"+namesource) return false; urlsource=urlsource.replace("//","/");
urldestination=dirdestination+"/"+namedestination;
urldestination=urldestination.replace("//","/");
// Si la source est la meme que la destination on ne fait rien
if(urlsource==urldestination) return false;
// Si la source est dans la destination on ne fait rien
//if(urldestination.includes(urlsource)) return false;
console.log(dirsource+"/"+namesource);
console.log(dirdestination+"/"+namedestination);
// On déplace l'element // On déplace l'element
$.ajax({ $.ajax({
method: "POST", method: "POST",
@ -336,11 +343,9 @@
} }
}); });
return false; return false;
}); });
{% endif %}
}); });
@ -366,6 +371,7 @@
} }
} }
{% if canupdate %}
// Trasher un fichier // Trasher un fichier
function trashFile(directory,subdirectory,filename) { function trashFile(directory,subdirectory,filename) {
var r = confirm("Confirmez-vous la mise à la poubelle de ce fichier ? Vous pourrez le récupèrer si besoin."); var r = confirm("Confirmez-vous la mise à la poubelle de ce fichier ? Vous pourrez le récupèrer si besoin.");
@ -422,6 +428,7 @@
}); });
} }
} }
{% endif %}
// Affichage des frames associés aux items de bureau // Affichage des frames associés aux items de bureau