Stop exposing if a user blocks you over the API.
Some checks are pending
ci/woodpecker/pr/woodpecker Pipeline is pending

This commit is contained in:
XxXCertifiedForkliftDriverXxX 2023-05-28 21:42:27 +00:00
parent 39b3d92cd8
commit 1b560d547a
4 changed files with 23 additions and 12 deletions

View file

@ -767,7 +767,7 @@ defp array_of_relationships do
"showing_reblogs" => true,
"followed_by" => true,
"blocking" => false,
"blocked_by" => true,
"blocked_by" => false,
"muting" => false,
"muting_notifications" => false,
"note" => "",
@ -783,7 +783,7 @@ defp array_of_relationships do
"showing_reblogs" => true,
"followed_by" => true,
"blocking" => false,
"blocked_by" => true,
"blocked_by" => false,
"muting" => true,
"muting_notifications" => false,
"note" => "",

View file

@ -13,7 +13,10 @@ defmodule Pleroma.Web.ApiSpec.Schemas.AccountRelationship do
description: "Relationship between current account and requested account",
type: :object,
properties: %{
blocked_by: %Schema{type: :boolean},
blocked_by: %Schema{
type: :boolean,
description: "Represents being blocked by this user. Always false."
},
blocking: %Schema{type: :boolean},
domain_blocking: %Schema{type: :boolean},
endorsed: %Schema{type: :boolean},

View file

@ -124,14 +124,7 @@ def render(
target,
&User.blocks_user?(&1, &2)
),
blocked_by:
UserRelationship.exists?(
user_relationships,
:block,
target,
reading_user,
&User.blocks_user?(&1, &2)
),
blocked_by: false,
muting:
UserRelationship.exists?(
user_relationships,

View file

@ -397,7 +397,22 @@ test "represent a relationship for the blocking and blocked user" do
expected =
Map.merge(
@blank_response,
%{following: false, blocking: true, blocked_by: true, id: to_string(other_user.id)}
%{following: false, blocking: true, blocked_by: false, id: to_string(other_user.id)}
)
test_relationship_rendering(user, other_user, expected)
end
test "blocks are not visible to the blocked user" do
user = insert(:user)
other_user = insert(:user)
{:ok, _user_relationship} = User.block(other_user, user)
expected =
Map.merge(
@blank_response,
%{following: false, blocking: false, blocked_by: false, id: to_string(other_user.id)}
)
test_relationship_rendering(user, other_user, expected)