diff --git a/src/modules/api/submodules/userFiles.ts b/src/modules/api/submodules/userFiles.ts index be6c942..ad1c661 100644 --- a/src/modules/api/submodules/userFiles.ts +++ b/src/modules/api/submodules/userFiles.ts @@ -314,6 +314,31 @@ function setup(data: SubmoduleData): void { const result = listDir(publicDir, dir, userFilesDir) res.json(result) }) + + app.post('/deleteDir', (req: Request<{ name: string }>, res) => { + logger.LogReq(req) + const { name } = req.body + + const safeName = name.replace(/\.+/g, '').replace(/\/+/g, '') + + if (!utils.FileExists(userFilesDir + '/' + safeName)) { + res.json({ + success: false, + msg: `Dir ${name} does not exist!`, + }) + return + } + utils.CreatePath(userFilesDir + '/' + safeName, true) + const result = listDir(publicDir, name, userFilesDir) + if (result.files.length === 0) { + utils.deleteDir(userFilesDir + '/' + safeName) + } else { + res.json({ succes: false, msg: `Dir ${name} is not empty!` }) + return + } + + res.json({ succes: true }) + }) } export default { diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 30020bd..54a89b5 100755 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -35,6 +35,7 @@ export default { uploadFile: uploadFile, statFile: statFile, renameFile: renameFile, + deleteDir: deleteDir, } import fs from 'fs' @@ -207,6 +208,14 @@ function deleteFile(fname: string): Boolean { return false } +function deleteDir(dirName: string): Boolean { + if (FileExists(dirName)) { + fs.rmSync(dirName, { recursive: true }) + return true + } + return false +} + function uploadFile( req: Request, path: string diff --git a/submodules/qmining-page b/submodules/qmining-page index 9c33300..281d0e0 160000 --- a/submodules/qmining-page +++ b/submodules/qmining-page @@ -1 +1 @@ -Subproject commit 9c333008c7049b032e4e3d0dbf5fd5893542ffb7 +Subproject commit 281d0e00ce054d46444f377876786b913b8c1a08