Improve username error messages and duplicate messages

This commit is contained in:
rubenwardy 2022-06-05 00:54:09 +01:00
parent adaf44bc2b
commit 0a89849157
6 changed files with 11 additions and 10 deletions

@ -427,7 +427,7 @@ def remove(package):
if "delete" in request.form: if "delete" in request.form:
if not package.checkPerm(current_user, Permission.DELETE_PACKAGE): if not package.checkPerm(current_user, Permission.DELETE_PACKAGE):
flash(gettext("You don't have permission to do that."), "danger") flash(gettext("You don't have permission to do that"), "danger")
return redirect(package.getURL("packages.view")) return redirect(package.getURL("packages.view"))
package.state = PackageState.DELETED package.state = PackageState.DELETED
@ -443,7 +443,7 @@ def remove(package):
return redirect(url) return redirect(url)
elif "unapprove" in request.form: elif "unapprove" in request.form:
if not package.checkPerm(current_user, Permission.UNAPPROVE_PACKAGE): if not package.checkPerm(current_user, Permission.UNAPPROVE_PACKAGE):
flash(gettext("You don't have permission to do that."), "danger") flash(gettext("You don't have permission to do that"), "danger")
return redirect(package.getURL("packages.view")) return redirect(package.getURL("packages.view"))
package.state = PackageState.WIP package.state = PackageState.WIP
@ -472,7 +472,7 @@ class PackageMaintainersForm(FlaskForm):
@is_package_page @is_package_page
def edit_maintainers(package): def edit_maintainers(package):
if not package.checkPerm(current_user, Permission.EDIT_MAINTAINERS): if not package.checkPerm(current_user, Permission.EDIT_MAINTAINERS):
flash(gettext("You do not have permission to edit maintainers"), "danger") flash(gettext("You don't have permission to edit maintainers"), "danger")
return redirect(package.getURL("packages.view")) return redirect(package.getURL("packages.view"))
form = PackageMaintainersForm(formdata=request.form) form = PackageMaintainersForm(formdata=request.form)

@ -102,7 +102,8 @@ def logout():
class RegisterForm(FlaskForm): class RegisterForm(FlaskForm):
display_name = StringField(lazy_gettext("Display Name"), [Optional(), Length(1, 20)], filters=[nonEmptyOrNone]) display_name = StringField(lazy_gettext("Display Name"), [Optional(), Length(1, 20)], filters=[nonEmptyOrNone])
username = StringField(lazy_gettext("Username"), [InputRequired(), username = StringField(lazy_gettext("Username"), [InputRequired(),
Regexp("^[a-zA-Z0-9._-]+$", message=lazy_gettext("Only a-zA-Z0-9._ allowed"))]) Regexp("^[a-zA-Z0-9._-]+$", message=lazy_gettext(
"Only alphabetic letters (A-Za-z), numbers (0-9), underscores (_), minuses (-), and periods (.) allowed"))])
email = StringField(lazy_gettext("Email"), [InputRequired(), Email()]) email = StringField(lazy_gettext("Email"), [InputRequired(), Email()])
password = PasswordField(lazy_gettext("Password"), [InputRequired(), Length(6, 100)]) password = PasswordField(lazy_gettext("Password"), [InputRequired(), Length(6, 100)])
question = StringField(lazy_gettext("What is the result of the above calculation?"), [InputRequired()]) question = StringField(lazy_gettext("What is the result of the above calculation?"), [InputRequired()])

@ -37,7 +37,7 @@ def claim_forums():
method = request.args.get("method") method = request.args.get("method")
if not is_username_valid(username): if not is_username_valid(username):
flash(gettext("Invalid username - must only contain A-Za-z0-9._. Consider contacting an admin"), "danger") flash(gettext("Invalid username, Only alphabetic letters (A-Za-z), numbers (0-9), underscores (_), minuses (-), and periods (.) allowed. Consider contacting an admin"), "danger")
return redirect(url_for("users.claim_forums")) return redirect(url_for("users.claim_forums"))
user = User.query.filter_by(forums_username=username).first() user = User.query.filter_by(forums_username=username).first()
@ -62,7 +62,7 @@ def claim_forums():
username = request.form.get("username") username = request.form.get("username")
if not is_username_valid(username): if not is_username_valid(username):
flash(gettext("Invalid username - must only contain A-Za-z0-9._. Consider contacting an admin"), "danger") flash(gettext("Invalid username, Only alphabetic letters (A-Za-z), numbers (0-9), underscores (_), minuses (-), and periods (.) allowed. Consider contacting an admin"), "danger")
elif ctype == "github": elif ctype == "github":
task = checkForumAccount.delay(username) task = checkForumAccount.delay(username)
return redirect(url_for("tasks.check", id=task.id, r=url_for("users.claim_forums", username=username, method="github"))) return redirect(url_for("tasks.check", id=task.id, r=url_for("users.claim_forums", username=username, method="github")))

@ -106,11 +106,11 @@ def validate(data: dict):
def do_edit_package(user: User, package: Package, was_new: bool, was_web: bool, data: dict, def do_edit_package(user: User, package: Package, was_new: bool, was_web: bool, data: dict,
reason: str = None): reason: str = None):
if not package.checkPerm(user, Permission.EDIT_PACKAGE): if not package.checkPerm(user, Permission.EDIT_PACKAGE):
raise LogicError(403, lazy_gettext("You do not have permission to edit this package")) raise LogicError(403, lazy_gettext("You don't have permission to edit this package"))
if "name" in data and package.name != data["name"] and \ if "name" in data and package.name != data["name"] and \
not package.checkPerm(user, Permission.CHANGE_NAME): not package.checkPerm(user, Permission.CHANGE_NAME):
raise LogicError(403, lazy_gettext("You do not have permission to change the package name")) raise LogicError(403, lazy_gettext("You don't have permission to change the package name"))
for alias, to in ALIASES.items(): for alias, to in ALIASES.items():
if alias in data: if alias in data:

@ -29,7 +29,7 @@ from app.utils import AuditSeverity, addAuditLog, nonEmptyOrNone
def check_can_create_release(user: User, package: Package): def check_can_create_release(user: User, package: Package):
if not package.checkPerm(user, Permission.MAKE_RELEASE): if not package.checkPerm(user, Permission.MAKE_RELEASE):
raise LogicError(403, lazy_gettext("You do not have permission to make releases")) raise LogicError(403, lazy_gettext("You don't have permission to make releases"))
five_minutes_ago = datetime.datetime.now() - datetime.timedelta(minutes=5) five_minutes_ago = datetime.datetime.now() - datetime.timedelta(minutes=5)
count = package.releases.filter(PackageRelease.releaseDate > five_minutes_ago).count() count = package.releases.filter(PackageRelease.releaseDate > five_minutes_ago).count()

@ -53,7 +53,7 @@ def test_register(client):
rv = register(client, "££££!!!", "Test User", "password", "test@example.com", "13") rv = register(client, "££££!!!", "Test User", "password", "test@example.com", "13")
assert b"invalid-feedback" in rv.data assert b"invalid-feedback" in rv.data
assert b"Only a-zA-Z0-9._ allowed</p>" in rv.data assert b"Only alphabetic letters (A-Za-z), numbers (0-9), underscores (_), minuses (-), and periods (.) allowed</p>" in rv.data
def test_register_flow(client): def test_register_flow(client):