diff options
Diffstat (limited to 'app/blueprints/packages/releases.py')
-rw-r--r-- | app/blueprints/packages/releases.py | 17 |
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()) |