Fix new thread private behaviour

This commit is contained in:
rubenwardy 2022-04-23 21:44:27 +01:00
parent 34d66a3d96
commit 958020b19b
2 changed files with 15 additions and 7 deletions

@ -289,7 +289,7 @@ def new():
if package is None and not current_user.rank.atLeast(UserRank.APPROVER): if package is None and not current_user.rank.atLeast(UserRank.APPROVER):
abort(404) abort(404)
allow_change = package and package.approved allow_private_change = not package or package.approved
is_review_thread = package and not package.approved is_review_thread = package and not package.approved
# Check that user can make the thread # Check that user can make the thread
@ -321,7 +321,7 @@ def new():
thread = Thread() thread = Thread()
thread.author = current_user thread.author = current_user
thread.title = form.title.data thread.title = form.title.data
thread.private = form.private.data if allow_change else def_is_private thread.private = form.private.data if allow_private_change else def_is_private
thread.package = package thread.package = package
db.session.add(thread) db.session.add(thread)
@ -369,7 +369,7 @@ def new():
return redirect(thread.getViewURL()) return redirect(thread.getViewURL())
return render_template("threads/new.html", form=form, allow_private_change=allow_change, package=package) return render_template("threads/new.html", form=form, allow_private_change=allow_private_change, package=package)
@bp.route("/users/<username>/comments/") @bp.route("/users/<username>/comments/")

@ -35,10 +35,18 @@
</div> </div>
</div> </div>
{{ render_checkbox_field(form.private, class_="my-3") }} {% if allow_private_change %}
<p> {{ render_checkbox_field(form.private, class_="my-3") }}
{{ _("Only you, the package author, and users of Approver rank and above can read private threads.") }} {% elif form.private.data %}
</p> <p>
Private.
</p>
{% endif %}
{% if allow_private_change or form.private.data %}
<p>
{{ _("Only you, the package author, and users of Approver rank and above can read private threads.") }}
</p>
{% endif %}
{{ render_submit_field(form.submit) }} {{ render_submit_field(form.submit) }}
</form> </form>