Merge pull request #18 from Demindiro/anonymous-create-thread

This commit is contained in:
David Hoppenbrouwers
2022-10-26 18:25:15 +02:00
committed by GitHub
3 changed files with 52 additions and 17 deletions

View File

@@ -186,10 +186,17 @@ def user_info(user_id):
@app.route('/forum/<int:forum_id>/new/', methods = ['GET', 'POST']) @app.route('/forum/<int:forum_id>/new/', methods = ['GET', 'POST'])
def new_thread(forum_id): def new_thread(forum_id):
user_id = session.get('user_id') user_id = session.get('user_id')
if user_id is None: if user_id is None and not config.registration_enabled:
# Can't create a thread without an account
return redirect(url_for('login')) return redirect(url_for('login'))
if request.method == 'POST': if request.method == 'POST':
if user_id is None:
# Attempt to create a user account first
if register_user(True):
user_id = session['user_id']
if user_id is not None:
title, text = request.form['title'].strip(), trim_text(request.form['text']) title, text = request.form['title'].strip(), trim_text(request.form['text'])
title = title.strip() title = title.strip()
if title == '' or text == '': if title == '' or text == '':

View File

@@ -46,6 +46,7 @@ table {
} }
tr:not(:last-child) { tr:not(:last-child) {
/* FIXME this is sometimes invisible depending on zoom level in Firefox. */
border-bottom: 1px solid; border-bottom: 1px solid;
} }
@@ -83,7 +84,6 @@ form.form {
} }
table.form { table.form {
border-collapse: unset;
width: 100%; width: 100%;
} }

View File

@@ -1,17 +1,45 @@
{% extends 'base.html' %} {% extends 'base.html' %}
{% block content %} {% block content %}
{%- if user is none -%}
<form method="post">
{#-
Using the password generator for usernames should be sufficient to ensure it is unique.
If not, it means the password generator is broken and *must* be fixed.
-#}
<input type=text name=username value="{{ rand_password() }}" hidden>
<input type=password name=password value="{{ rand_password() }}" hidden>
{%- set q, a = gen_captcha() -%}
<input type=text name=answer value="{{ a }}" hidden>
<table class=form>
<tr>
<td>Title</td>
<td><input type="text" name="title" required></td>
</tr>
<tr>
<td>Text</td>
<td><textarea name="text" required></textarea></td>
</tr>
<tr>
<td>{{ q }}</td>
<td><input type=text name=captcha required></td>
</tr>
</table>
<p><input type="submit" value="Register & post"> (<a href="{{ url_for('login') }}">I already have an account</a>)</p>
</form>
{%- else -%}
<form method="post"> <form method="post">
<table class=form> <table class=form>
<tr> <tr>
<td>Title</td> <td>Title</td>
<td><input type="text" name="title"></td> <td><input type="text" name="title" required></td>
</tr> </tr>
<tr> <tr>
<td>Text</td> <td>Text</td>
<td><textarea name="text"></textarea></td> <td><textarea name="text" required></textarea></td>
</tr> </tr>
</table> </table>
<p><input type="submit" value="Post"></p> <p><input type="submit" value="Post"></p>
</form> </form>
{%- endif -%}
{% endblock %} {% endblock %}