From 0165737686f68dd69753df9f9f2f29bf0bcbf916 Mon Sep 17 00:00:00 2001 From: raven Date: Fri, 30 Oct 2026 20:17:21 -0500 Subject: make template refuse to show posts that user does not have permission for --- apioforum/__init__.py | 2 ++ apioforum/templates/common.html | 61 ++++++++++++++++++++++++++--------------- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/apioforum/__init__.py b/apioforum/__init__.py index 2281fde..276568f 100644 --- a/apioforum/__init__.py +++ b/apioforum/__init__.py @@ -57,8 +57,10 @@ def create_app(): app.jinja_env.globals.update(forum_path=forum.forum_path) app.jinja_env.globals.update(post_jump=thread.post_jump) from .roles import has_permission, is_bureaucrat, get_user_role + from .thread import thread_info app.jinja_env.globals.update( has_permission=has_permission, + thread_info=thread_info, is_bureaucrat=is_bureaucrat, get_user_role=get_user_role) diff --git a/apioforum/templates/common.html b/apioforum/templates/common.html index 2a19b5c..935972d 100644 --- a/apioforum/templates/common.html +++ b/apioforum/templates/common.html @@ -3,26 +3,28 @@ {%- endmacro %} {% macro disp_post(post, buttons=False, forum=None, footer=None) %} +{% if not forum %} + {% if post.forum %} + {% set forum = post.forum %} + {% else %} + {% set forum = thread_info(post.thread).forum %} + {% endif %} +{% endif %} +{% if not has_permission(forum, g.user, "p_view_threads") %} + {{ hidden_post("you do not have permission to view this post.", post) }} +{% elif post.deleted %} + {{ hidden_post("this post never existed.", post) }} +{% else %}
- {% if not post.deleted %} - {{disp_user(post.author)}} - {% else %} - big brother - {% endif %} + {{disp_user(post.author)}} - {% if forum != None %} - {% set role = get_user_role(forum, post.author) %} - {% if post.deleted %} - - (bureaucrat) - - {% elif role != "other" %} - - ({{ role }}) - - {% endif %} + {% set role = get_user_role(forum, post.author) %} + {% if role != "other" %} + + ({{ role }}) + {% endif %} {{ts(post.created)}} @@ -32,7 +34,7 @@ {% endif %} - {% if buttons and not post.deleted %} + {% if buttons %} {% if post.author == g.user %} edit @@ -49,11 +51,7 @@
- {% if not post.deleted %} - {{ post.content|md|safe }} - {% else %} - this post never existed. - {% endif %} + {{ post.content|md|safe }}
{% if footer %} {% endif %}
+{% endif %} +{% endmacro %} + +{% macro hidden_post(message, post) %} +
+
+ + big brother + (bureaucrat) + {{ts(post.created)}} + + + #{{post.id}} + +
+
+ {{ message|md|safe }} +
+
{% endmacro %} {% macro ts(dt) -%} -- cgit v1.2.3