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
|
||||
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))
|
||||
end
|
||||
|
||||
|
|
|
@ -1518,9 +1518,9 @@ def suggestions(%{assigns: %{user: user}} = conn, _) do
|
|||
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),
|
||||
true <- ActivityPub.is_public?(activity) do
|
||||
true <- ActivityPub.visible_for_user?(activity, user) do
|
||||
data =
|
||||
StatusView.render(
|
||||
"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)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue