From aa21a3c1611cc7042f3b6c96601528cee575f1ee Mon Sep 17 00:00:00 2001 From: Kevin Chung Date: Sat, 8 Apr 2017 03:29:11 -0400 Subject: [PATCH] Fix chal deletion (#241) * improving get_config * Fixing challenge deletion * Puts challenge deletion under utils.delete_file --- CTFd/admin/challenges.py | 6 ++---- CTFd/utils.py | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/CTFd/admin/challenges.py b/CTFd/admin/challenges.py index c79ebe8c..cb8ca30f 100644 --- a/CTFd/admin/challenges.py +++ b/CTFd/admin/challenges.py @@ -263,11 +263,9 @@ def admin_delete_chal(): Solves.query.filter_by(chalid=challenge.id).delete() Keys.query.filter_by(chal=challenge.id).delete() files = Files.query.filter_by(chal=challenge.id).all() + for f in files: + utils.delete_file(f.id) Files.query.filter_by(chal=challenge.id).delete() - for file in files: - upload_folder = app.config['UPLOAD_FOLDER'] - folder = os.path.dirname(os.path.join(os.path.normpath(app.root_path), upload_folder, file.location)) - utils.rmdir(folder) Tags.query.filter_by(chal=challenge.id).delete() Challenges.query.filter_by(id=challenge.id).delete() db.session.commit() diff --git a/CTFd/utils.py b/CTFd/utils.py index 2d13bdee..2f0043a4 100644 --- a/CTFd/utils.py +++ b/CTFd/utils.py @@ -349,8 +349,8 @@ def upload_file(file, chalid): return True -def delete_file(filename): - f = Files.query.filter_by(id=filename).first_or_404() +def delete_file(file_id): + f = Files.query.filter_by(id=file_id).first_or_404() upload_folder = os.path.join(app.root_path, app.config['UPLOAD_FOLDER']) if os.path.exists(os.path.join(upload_folder, f.location)): # Some kind of os.path.isfile issue on Windows... os.unlink(os.path.join(upload_folder, f.location))