From 8dcbcd8b626fcade29f3bce8ab597de6380c7c6c Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Wed, 8 Jul 2020 23:42:30 +0100 Subject: Add ability for users to remove themselves as maintainers --- app/blueprints/packages/packages.py | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'app/blueprints') diff --git a/app/blueprints/packages/packages.py b/app/blueprints/packages/packages.py index aa88415..0297cc4 100644 --- a/app/blueprints/packages/packages.py +++ b/app/blueprints/packages/packages.py @@ -409,12 +409,12 @@ def edit_maintainers(package): for user in users: if not user in package.maintainers: triggerNotif(user, current_user, - "Added you as a maintainer to {}".format(package.title), package.getDetailsURL()) + "Added you as a maintainer of {}".format(package.title), package.getDetailsURL()) for user in package.maintainers: if not user in users: triggerNotif(user, current_user, - "Removed you as a maintainer to {}".format(package.title), package.getDetailsURL()) + "Removed you as a maintainer of {}".format(package.title), package.getDetailsURL()) package.maintainers.clear() package.maintainers.extend(users) @@ -432,3 +432,24 @@ def edit_maintainers(package): return render_template("packages/edit_maintainers.html", \ package=package, form=form, users=users) + + +@bp.route("/packages///remove-self-maintainer/", methods=["POST"]) +@login_required +@is_package_page +def remove_self_maintainers(package): + if not current_user in package.maintainers: + flash("You are not a maintainer", "danger") + + elif current_user == package.author: + flash("Package owners cannot remove themselves as maintainers", "danger") + + else: + package.maintainers.remove(current_user) + + triggerNotif(package.author, current_user, + "Removed themself as a maintainer of {}".format(package.title), package.getDetailsURL()) + + db.session.commit() + + return redirect(package.getDetailsURL()) -- cgit v1.2.3