From 7c72912913cdce9d0eb99486dca542397981f78e Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Mon, 2 Oct 2023 00:23:30 +0100 Subject: [PATCH] Transfer: add option to remove current owner from maintainers --- app/blueprints/admin/admin.py | 5 ++++- app/templates/admin/transfer.html | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/blueprints/admin/admin.py b/app/blueprints/admin/admin.py index 0d3a129e..fb59fbd3 100644 --- a/app/blueprints/admin/admin.py +++ b/app/blueprints/admin/admin.py @@ -17,7 +17,7 @@ from flask import redirect, render_template, url_for, request, flash from flask_login import current_user, login_user from flask_wtf import FlaskForm -from wtforms import StringField, SubmitField +from wtforms import StringField, SubmitField, BooleanField from wtforms.validators import InputRequired, Length, Optional from app.utils import rank_required, add_audit_log, add_notification, get_system_user, nonempty_or_none from . import bp @@ -124,6 +124,7 @@ class TransferPackageForm(FlaskForm): old_username = StringField("Old Username", [InputRequired()]) new_username = StringField("New Username", [InputRequired()]) package = StringField("Package", [Optional()]) + remove_maintainer = BooleanField("Remove current owner from maintainers") submit = SubmitField("Transfer") @@ -150,6 +151,8 @@ def perform_transfer(form: TransferPackageForm): return for package in packages: + if form.remove_maintainer.data: + package.maintainers.remove(package.author) package.author = new_user package.maintainers.append(new_user) package.aliases.append(PackageAlias(form.old_username.data, package.name)) diff --git a/app/templates/admin/transfer.html b/app/templates/admin/transfer.html index 3ca31064..4d2ef3b4 100644 --- a/app/templates/admin/transfer.html +++ b/app/templates/admin/transfer.html @@ -7,13 +7,14 @@ {% block content %}

Transfer Package(s)

- {% from "macros/forms.html" import render_field, render_submit_field %} + {% from "macros/forms.html" import render_field, render_checkbox_field, render_submit_field %}
{{ form.hidden_tag() }} {{ render_field(form.old_username) }} - {{ render_field(form.new_username) }} - {{ render_field(form.package, hint="Leave blank to transfer all packages") }} + {{ render_field(form.new_username) }} + {{ render_field(form.package, hint="Leave blank to transfer all packages") }} + {{ render_checkbox_field(form.remove_maintainer, class_="mb-5") }} {{ render_submit_field(form.submit) }}
{% endblock %}