aboutsummaryrefslogtreecommitdiff
path: root/app/blueprints/packages/releases.py
diff options
context:
space:
mode:
Diffstat (limited to 'app/blueprints/packages/releases.py')
-rw-r--r--app/blueprints/packages/releases.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/blueprints/packages/releases.py b/app/blueprints/packages/releases.py
index a7f161e..6ef19d2 100644
--- a/app/blueprints/packages/releases.py
+++ b/app/blueprints/packages/releases.py
@@ -225,3 +225,20 @@ def bulk_change_release(package):
return redirect(package.getDetailsURL())
return render_template("packages/release_bulk_change.html", package=package, form=form)
+
+
+@bp.route("/packages/<author>/<name>/releases/<id>/delete/", methods=["POST"])
+@login_required
+@is_package_page
+def delete_release(package, id):
+ release = PackageRelease.query.get(id)
+ if release is None or release.package != package:
+ abort(404)
+
+ if not release.checkPerm(current_user, Permission.DELETE_RELEASE):
+ return redirect(release.getEditURL())
+
+ db.session.delete(release)
+ db.session.commit()
+
+ return redirect(package.getDetailsURL())