Fix private post card handling.
This commit is contained in:
parent
5a4e2905fe
commit
62296f5a25
|
@ -943,7 +943,7 @@ def visible_for_user?(activity, nil) do
|
||||||
|
|
||||||
def visible_for_user?(activity, user) do
|
def visible_for_user?(activity, user) do
|
||||||
x = [user.ap_id | user.following]
|
x = [user.ap_id | user.following]
|
||||||
y = activity.data["to"] ++ (activity.data["cc"] || [])
|
y = [activity.actor] ++ activity.data["to"] ++ (activity.data["cc"] || [])
|
||||||
visible_for_user?(activity, nil) || Enum.any?(x, &(&1 in y))
|
visible_for_user?(activity, nil) || Enum.any?(x, &(&1 in y))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1518,9 +1518,9 @@ def suggestions(%{assigns: %{user: user}} = conn, _) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def status_card(conn, %{"id" => status_id}) do
|
def status_card(%{assigns: %{user: user}} = conn, %{"id" => status_id}) do
|
||||||
with %Activity{} = activity <- Repo.get(Activity, status_id),
|
with %Activity{} = activity <- Repo.get(Activity, status_id),
|
||||||
true <- ActivityPub.is_public?(activity) do
|
true <- ActivityPub.visible_for_user?(activity, user) do
|
||||||
data =
|
data =
|
||||||
StatusView.render(
|
StatusView.render(
|
||||||
"card.json",
|
"card.json",
|
||||||
|
|
|
@ -1744,6 +1744,18 @@ test "Status rich-media Card", %{conn: conn, user: user} do
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# works with private posts
|
||||||
|
{:ok, activity} =
|
||||||
|
CommonAPI.post(user, %{"status" => "http://example.com/ogp", "visibility" => "direct"})
|
||||||
|
|
||||||
|
response_two =
|
||||||
|
conn
|
||||||
|
|> assign(:user, user)
|
||||||
|
|> get("/api/v1/statuses/#{activity.id}/card")
|
||||||
|
|> json_response(200)
|
||||||
|
|
||||||
|
assert response_two == response
|
||||||
|
|
||||||
Pleroma.Config.put([:rich_media, :enabled], false)
|
Pleroma.Config.put([:rich_media, :enabled], false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue