From 552cfdbe11193baf019fc97cc56356882cf60bc0 Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Wed, 16 Aug 2017 16:29:25 +0200 Subject: Fix deletion not deleting relevant actions. --- lib/pleroma/activity.ex | 6 ++++++ lib/pleroma/web/ostatus/handlers/delete_handler.ex | 1 + 2 files changed, 7 insertions(+) (limited to 'lib') diff --git a/lib/pleroma/activity.ex b/lib/pleroma/activity.ex index 0b7188aba..f226c4c5f 100644 --- a/lib/pleroma/activity.ex +++ b/lib/pleroma/activity.ex @@ -15,11 +15,17 @@ defmodule Pleroma.Activity do where: fragment("(?)->>'id' = ?", activity.data, ^to_string(ap_id))) end + # Wrong name, only returns create activities def all_by_object_ap_id_q(ap_id) do from activity in Activity, where: fragment("(?)->'object'->>'id' = ?", activity.data, ^to_string(ap_id)) end + def all_non_create_by_object_ap_id_q(ap_id) do + from activity in Activity, + where: fragment("(?)->>'object' = ?", activity.data, ^to_string(ap_id)) + end + def all_by_object_ap_id(ap_id) do Repo.all(all_by_object_ap_id_q(ap_id)) end diff --git a/lib/pleroma/web/ostatus/handlers/delete_handler.ex b/lib/pleroma/web/ostatus/handlers/delete_handler.ex index 2e5f9469b..f54a037a0 100644 --- a/lib/pleroma/web/ostatus/handlers/delete_handler.ex +++ b/lib/pleroma/web/ostatus/handlers/delete_handler.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.OStatus.DeleteHandler do with id <- XML.string_from_xpath("//id", entry), object when not is_nil(object) <- Object.get_by_ap_id(id) do Repo.delete(object) + Repo.delete_all(Activity.all_non_create_by_object_ap_id_q(id)) Repo.delete_all(Activity.all_by_object_ap_id_q(id)) nil end -- cgit v1.2.3