fix: don't allow users to read posts from communities with strict read
access
This commit is contained in:
parent
7b4865333e
commit
30b23660b6
5 changed files with 36 additions and 16 deletions
|
@ -13,11 +13,13 @@ profile.settings.enable_questions and user %}
|
||||||
<div class="card flex flex-col gap-4">
|
<div class="card flex flex-col gap-4">
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
{% for post in pinned %}
|
{% for post in pinned %}
|
||||||
|
{% if post[2].read_access == "Everybody" %}
|
||||||
{% if post[0].context.repost and post[0].context.repost.reposting %}
|
{% if post[0].context.repost and post[0].context.repost.reposting %}
|
||||||
{{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true, can_manage_post=is_self) }}
|
{{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true, can_manage_post=is_self) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2], can_manage_post=is_self) }}
|
{{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2], can_manage_post=is_self) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,11 +7,13 @@
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<div class="card w-full flex flex-col gap-2">
|
<div class="card w-full flex flex-col gap-2">
|
||||||
{% for post in list %}
|
{% for post in list %}
|
||||||
|
{% if post[2].read_access == "Everybody" %}
|
||||||
{% if post[0].context.repost and post[0].context.repost.reposting %}
|
{% if post[0].context.repost and post[0].context.repost.reposting %}
|
||||||
{{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true) }}
|
{{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2]) }}
|
{{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2]) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{{ components::pagination(page=page, items=list|length) }}
|
{{ components::pagination(page=page, items=list|length) }}
|
||||||
|
|
|
@ -7,11 +7,13 @@
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<div class="card w-full flex flex-col gap-2">
|
<div class="card w-full flex flex-col gap-2">
|
||||||
{% for post in list %}
|
{% for post in list %}
|
||||||
|
{% if post[2].read_access == "Everybody" %}
|
||||||
{% if post[0].context.repost and post[0].context.repost.reposting %}
|
{% if post[0].context.repost and post[0].context.repost.reposting %}
|
||||||
{{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true) }}
|
{{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2]) }}
|
{{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2]) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{{ components::pagination(page=page, items=list|length) }}
|
{{ components::pagination(page=page, items=list|length) }}
|
||||||
|
|
|
@ -7,11 +7,13 @@
|
||||||
<!-- prettier-ignore -->
|
<!-- prettier-ignore -->
|
||||||
<div class="card w-full flex flex-col gap-2">
|
<div class="card w-full flex flex-col gap-2">
|
||||||
{% for post in list %}
|
{% for post in list %}
|
||||||
|
{% if post[2].read_access == "Everybody" %}
|
||||||
{% if post[0].context.repost and post[0].context.repost.reposting %}
|
{% if post[0].context.repost and post[0].context.repost.reposting %}
|
||||||
{{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true) }}
|
{{ components::repost(repost=post[3], post=post[0], owner=post[1], secondary=true, community=post[2], show_community=true) }}
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2]) }}
|
{{ components::post(post=post[0], owner=post[1], question=post[4], secondary=true, community=post[2]) }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
{{ components::pagination(page=page, items=list|length) }}
|
{{ components::pagination(page=page, items=list|length) }}
|
||||||
|
|
|
@ -551,6 +551,12 @@ pub async fn post_request(
|
||||||
// check permissions
|
// check permissions
|
||||||
let (can_read, can_manage_pins) = check_permissions!(community, jar, data, user);
|
let (can_read, can_manage_pins) = check_permissions!(community, jar, data, user);
|
||||||
|
|
||||||
|
if !can_read {
|
||||||
|
return Err(Html(
|
||||||
|
render_error(Error::NotAllowed, &jar, &data, &user).await,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
let feed = match data.0.get_post_comments(post.id, 12, props.page).await {
|
let feed = match data.0.get_post_comments(post.id, 12, props.page).await {
|
||||||
Ok(p) => match data.0.fill_posts(p).await {
|
Ok(p) => match data.0.fill_posts(p).await {
|
||||||
|
@ -736,6 +742,12 @@ pub async fn question_request(
|
||||||
// check permissions
|
// check permissions
|
||||||
let (can_read, _) = check_permissions!(community, jar, data, user);
|
let (can_read, _) = check_permissions!(community, jar, data, user);
|
||||||
|
|
||||||
|
if !can_read {
|
||||||
|
return Err(Html(
|
||||||
|
render_error(Error::NotAllowed, &jar, &data, &user).await,
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
// ...
|
// ...
|
||||||
let feed = match data
|
let feed = match data
|
||||||
.0
|
.0
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue