aboutsummaryrefslogtreecommitdiff
path: root/app/blueprints/packages/packages.py
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2020-07-08 23:42:30 +0100
committerrubenwardy <rw@rubenwardy.com>2020-07-08 23:42:30 +0100
commit8dcbcd8b626fcade29f3bce8ab597de6380c7c6c (patch)
tree64ee19d9fd134fe1739d642c47e83b7420edcbd9 /app/blueprints/packages/packages.py
parentd00428eb7ea08ab11d202015aef2c14c7dca906a (diff)
downloadcheatdb-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.py25
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())