Browse Source

Fix private post card handling.

tags/v1.1.4
lain 5 years ago
parent
commit
62296f5a25
3 changed files with 15 additions and 3 deletions
  1. +1
    -1
      lib/pleroma/web/activity_pub/activity_pub.ex
  2. +2
    -2
      lib/pleroma/web/mastodon_api/mastodon_api_controller.ex
  3. +12
    -0
      test/web/mastodon_api/mastodon_api_controller_test.exs

+ 1
- 1
lib/pleroma/web/activity_pub/activity_pub.ex View File

@@ -943,7 +943,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub 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



+ 2
- 2
lib/pleroma/web/mastodon_api/mastodon_api_controller.ex View File

@@ -1518,9 +1518,9 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIController 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",


+ 12
- 0
test/web/mastodon_api/mastodon_api_controller_test.exs View File

@@ -1744,6 +1744,18 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest 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…
Cancel
Save