diff options
| author | Ivan Tashkinov <ivantashkinov@gmail.com> | 2020-04-25 18:24:10 +0300 | 
|---|---|---|
| committer | Ivan Tashkinov <ivantashkinov@gmail.com> | 2020-04-25 18:24:10 +0300 | 
| commit | 0d05e1fe397d75d4381d9059bd1c049ab7030085 (patch) | |
| tree | 86a3e8d4480afbb4fdcaba597b56d9c012f9c958 /lib | |
| parent | 8addbd948ca08ce92780bf7afdff95286bf719fa (diff) | |
| download | pleroma-0d05e1fe397d75d4381d9059bd1c049ab7030085.tar.gz pleroma-0d05e1fe397d75d4381d9059bd1c049ab7030085.zip | |
[#1706] Prevented error on unresolved activity actors for timeline actions.
Diffstat (limited to 'lib')
| -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 | 13 | 
2 files changed, 13 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..b0c53acd9 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,11 @@ 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 +100,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] | 
