diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/web/activity_pub/activity_pub.ex | 24 | ||||
| -rw-r--r-- | lib/pleroma/web/twitter_api/twitter_api_controller.ex | 1 | 
2 files changed, 25 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 16ae65867..b81198629 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -421,6 +421,30 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do    @valid_visibilities ~w[direct unlisted public private]    defp restrict_visibility(query, %{visibility: visibility}) +       when is_list(visibility) do +    if Enum.all?(visibility, &(&1 in @valid_visibilities)) do +      query = +        from( +          a in query, +          where: +            fragment( +              "activity_visibility(?, ?, ?) = ANY (?)", +              a.actor, +              a.recipients, +              a.data, +              ^visibility +            ) +        ) + +      Ecto.Adapters.SQL.to_sql(:all, Repo, query) + +      query +    else +      Logger.error("Could not restrict visibility to #{visibility}") +    end +  end + +  defp restrict_visibility(query, %{visibility: visibility})         when visibility in @valid_visibilities do      query =        from( diff --git a/lib/pleroma/web/twitter_api/twitter_api_controller.ex b/lib/pleroma/web/twitter_api/twitter_api_controller.ex index 0d74c30c3..41e3acc60 100644 --- a/lib/pleroma/web/twitter_api/twitter_api_controller.ex +++ b/lib/pleroma/web/twitter_api/twitter_api_controller.ex @@ -167,6 +167,7 @@ defmodule Pleroma.Web.TwitterAPI.Controller do        params        |> Map.put("type", ["Create", "Announce", "Follow", "Like"])        |> Map.put("blocking_user", user) +      |> Map.put(:visibility, ~w[unlisted public private])      activities = ActivityPub.fetch_activities([user.ap_id], params)  | 
