diff options
Diffstat (limited to 'lib/pleroma')
| -rw-r--r-- | lib/pleroma/web/admin_api/views/status_view.ex | 18 | ||||
| -rw-r--r-- | lib/pleroma/web/mastodon_api/views/status_view.ex | 14 | 
2 files changed, 14 insertions, 18 deletions
| diff --git a/lib/pleroma/web/admin_api/views/status_view.ex b/lib/pleroma/web/admin_api/views/status_view.ex index 360ddc22c..3637dee24 100644 --- a/lib/pleroma/web/admin_api/views/status_view.ex +++ b/lib/pleroma/web/admin_api/views/status_view.ex @@ -8,15 +8,16 @@ defmodule Pleroma.Web.AdminAPI.StatusView do    require Pleroma.Constants    alias Pleroma.User +  alias Pleroma.Web.MastodonAPI.StatusView    def render("index.json", opts) do      safe_render_many(opts.activities, __MODULE__, "show.json", opts)    end    def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do -    user = get_user(activity.data["actor"]) +    user = StatusView.get_user(activity.data["actor"]) -    Pleroma.Web.MastodonAPI.StatusView.render("show.json", opts) +    StatusView.render("show.json", opts)      |> Map.merge(%{account: merge_account_views(user)})    end @@ -26,17 +27,4 @@ defmodule Pleroma.Web.AdminAPI.StatusView do    end    defp merge_account_views(_), do: %{} - -  defp get_user(ap_id) do -    cond do -      user = User.get_cached_by_ap_id(ap_id) -> -        user - -      user = User.get_by_guessed_nickname(ap_id) -> -        user - -      true -> -        User.error_user(ap_id) -    end -  end  end diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index b5850e1ae..1d9082c09 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -45,7 +45,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do      end)    end -  defp get_user(ap_id) do +  def get_user(ap_id, fake_record_fallback \\ true) do      cond do        user = User.get_cached_by_ap_id(ap_id) ->          user @@ -53,8 +53,12 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do        user = User.get_by_guessed_nickname(ap_id) ->          user -      true -> +      fake_record_fallback -> +        # TODO: refactor (fake records is never a good idea)          User.error_user(ap_id) + +      true -> +        nil      end    end @@ -97,7 +101,11 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do            UserRelationship.view_relationships_option(nil, [])          true -> -          actors = Enum.map(activities ++ parent_activities, &get_user(&1.data["actor"])) +          # Note: unresolved users are filtered out +          actors = +            (activities ++ parent_activities) +            |> Enum.map(&get_user(&1.data["actor"], false)) +            |> Enum.filter(& &1)            UserRelationship.view_relationships_option(reading_user, actors,              source_mutes_only: opts[:skip_relationships] | 
