From 6a6260f64e066b8b4b626f12e7c6eca3b7dc63ac Mon Sep 17 00:00:00 2001 From: sadposter Date: Mon, 6 Dec 2021 12:03:16 +0000 Subject: [PATCH] re-enable deactivated check --- lib/mix/tasks/pleroma/user.ex | 4 +- lib/pleroma/activity.ex | 5 +- lib/pleroma/web/activity_pub/activity_pub.ex | 67 +------------------- 3 files changed, 5 insertions(+), 71 deletions(-) diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index d2c751b82..9bda7b485 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -462,9 +462,9 @@ defmodule Mix.Tasks.Pleroma.User do |> Map.put(:user, user) |> Map.put(:local_only, params[:local]) |> Map.delete(:local) - activities = + _activities = [user.ap_id | User.following(user)] - |> ActivityPub.fetch_activities_secret(params) + |> ActivityPub.fetch_activities(params) end end diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index b88f74f47..c84e96aa2 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -362,11 +362,10 @@ defmodule Pleroma.Activity do end def restrict_deactivated_users(query) do - deactivated_users = + deactivated_users_query = from(u in User.Query.build(%{deactivated: true}), select: u.ap_id) - |> Repo.all() - Activity.Queries.exclude_authors(query, deactivated_users) + from(activity in query, where: activity.actor not in subquery(deactivated_users_query)) end defdelegate search(user, query, options \\ []), to: Pleroma.Activity.Search diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index f3e55c79c..0878e773b 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -494,15 +494,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do |> maybe_update_cc(list_memberships, opts[:user]) end - def fetch_activities_secret(recipients, opts \\ %{}, pagination \\ :keyset) do - list_memberships = Pleroma.List.memberships(opts[:user]) - - fetch_activities_query_secret(recipients ++ list_memberships, opts) - |> fetch_paginated_optimized(opts, pagination) - |> Enum.reverse() - end - - @spec fetch_public_or_unlisted_activities(map(), Pagination.type()) :: [Activity.t()] def fetch_public_or_unlisted_activities(opts \\ %{}, pagination \\ :keyset) do opts = Map.delete(opts, :user) @@ -1318,63 +1309,6 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do {restrict_blocked_opts, restrict_muted_opts, restrict_muted_reblogs_opts} end - def fetch_activities_query_secret(recipients, opts \\ %{}) do - opts = normalize_fetch_activities_query_opts(opts) - - {restrict_blocked_opts, restrict_muted_opts, restrict_muted_reblogs_opts} = - fetch_activities_query_ap_ids_ops(opts) - - config = %{ - skip_thread_containment: true - } - - query = - Activity - |> maybe_preload_objects(opts) - |> maybe_preload_bookmarks(opts) - |> maybe_preload_report_notes(opts) - |> maybe_set_thread_muted_field(opts) - |> maybe_order(opts) - |> restrict_recipients(recipients, opts[:user]) - |> restrict_replies(opts) - |> restrict_since(opts) - |> restrict_local(opts) - |> restrict_remote(opts) - |> restrict_actor(opts) - |> restrict_type(opts) - |> restrict_state(opts) - |> restrict_favorited_by(opts) - |> restrict_blocked(restrict_blocked_opts) - |> restrict_blockers_visibility(opts) - |> restrict_muted(restrict_muted_opts) - |> restrict_filtered(opts) - |> restrict_media(opts) - |> restrict_visibility(opts) - |> restrict_thread_visibility(opts, config) - |> restrict_reblogs(opts) - |> restrict_pinned(opts) - |> restrict_muted_reblogs(restrict_muted_reblogs_opts) - |> restrict_instance(opts) - |> restrict_announce_object_actor(opts) - |> restrict_filtered(opts) - |> exclude_poll_votes(opts) - |> exclude_chat_messages(opts) - |> exclude_invisible_actors(opts) - |> exclude_visibility(opts) - - if Config.feature_enabled?(:improved_hashtag_timeline) do - query - |> restrict_hashtag_any(opts) - |> restrict_hashtag_all(opts) - |> restrict_hashtag_reject_any(opts) - else - query - |> restrict_embedded_tag_any(opts) - |> restrict_embedded_tag_all(opts) - |> restrict_embedded_tag_reject_any(opts) - end - end - def fetch_activities_query(recipients, opts \\ %{}) do opts = normalize_fetch_activities_query_opts(opts) @@ -1414,6 +1348,7 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do |> restrict_instance(opts) |> restrict_announce_object_actor(opts) |> restrict_filtered(opts) + |> Activity.restrict_deactivated_users() |> exclude_poll_votes(opts) |> exclude_chat_messages(opts) |> exclude_invisible_actors(opts)