diff options
author | rubenwardy <rw@rubenwardy.com> | 2020-07-08 23:42:30 +0100 |
---|---|---|
committer | rubenwardy <rw@rubenwardy.com> | 2020-07-08 23:42:30 +0100 |
commit | 8dcbcd8b626fcade29f3bce8ab597de6380c7c6c (patch) | |
tree | 64ee19d9fd134fe1739d642c47e83b7420edcbd9 /app/blueprints/packages/packages.py | |
parent | d00428eb7ea08ab11d202015aef2c14c7dca906a (diff) | |
download | cheatdb-8dcbcd8b626fcade29f3bce8ab597de6380c7c6c.tar.xz |
Add ability for users to remove themselves as maintainers
Diffstat (limited to 'app/blueprints/packages/packages.py')
-rw-r--r-- | app/blueprints/packages/packages.py | 25 |
1 files changed, 23 insertions, 2 deletions
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/<author>/<name>/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()) |