roundabout,
created on Monday, 29 April 2024, 05:59:48 (1714370388),
received on Wednesday, 31 July 2024, 06:54:47 (1722408887)
Author identity: vlad <vlad.muntoiu@gmail.com>
4603f392a6c62b82f2558123c51dd6cb3bd0d027
app.py
@@ -360,6 +360,11 @@ def login():
_("Usernames may not contain consecutive hyphens")),
category="error")
return flask.render_template("login.html")
if username.startswith("-") or username.endswith("-"):
flask.flash(Markup(
_("Usernames may not start or end with a hyphen")),
category="error")
return flask.render_template("login.html")
if username in config.RESERVED_NAMES:
flask.flash(
Markup(
@@ -368,9 +373,9 @@ def login():
category="error")
return flask.render_template("login.html")
display_name = None
if not username.islower():
display_name = username
if not name: # infer display name from the wanted username if not customised
display_name = username
username = username.lower()
flask.flash(Markup(
_("Usernames must be lowercase, so it's been converted automatically")),
@@ -393,8 +398,6 @@ def login():
return flask.render_template("login.html")
user = User(username, password, email, name)
if display_name:
user.display_name = display_name
db.session.add(user)
db.session.commit()
flask.session["username"] = user.username
templates/login.html
@@ -50,10 +50,12 @@
<x-vbox class="nopad">
<label for="signup-username">{% trans %}Wanted username{% endtrans %}</label>
<input id="signup-username" name="username" required>
{% trans %}Only letters, numbers or hyphens, cannot be changed later{% endtrans %}
</x-vbox>
<x-vbox class="nopad">
<label for="signup-password">{% trans %}Password{% endtrans %}</label>
<input id="signup-password" name="password" type="password" required>
{% trans %}Stored only hashed, so we can't recover it for you{% endtrans %}
</x-vbox>
<x-vbox class="nopad">
<label for="signup-password-2">{% trans %}Repeat password{% endtrans %}</label>
@@ -62,14 +64,16 @@
<x-vbox class="nopad">
<label for="signup-email">{% trans %}Email (recommended){% endtrans %}</label>
<input id="signup-email" name="email" type="email">
{% trans %}Used for notifications, only displayed if you'd like to{% endtrans %}
</x-vbox>
<x-vbox class="nopad" style="display: none;">
<label for="signup-email-2">{% trans %}Repeat email (recommended){% endtrans %}</label>
<input id="signup-email-2" name="email2" type="email">
</x-vbox>
<x-vbox class="nopad">
<label for="signup-name">{% trans %}Friendly name (optional){% endtrans %}</label>
<label for="signup-name">{% trans %}Display name (optional){% endtrans %}</label>
<input id="signup-name" name="name">
{% trans %}Doesn't have username restrictions, can be changed later{% endtrans %}
</x-vbox>
<label>
<input id="signup-terms" type="checkbox" name="tos" required>