diff options
author | lain <lain@soykaf.club> | 2019-01-27 21:03:15 +0100 |
---|---|---|
committer | lain <lain@soykaf.club> | 2019-01-27 21:03:15 +0100 |
commit | 2e277dd4ad96ef6f7ce3267eb05d0b84668df772 (patch) | |
tree | 9ac9b8daef8251a98030ca8481c1e824aa135412 | |
parent | aa8ddfdbe2303375e3f019faca30a620bfc58fc7 (diff) | |
download | pleroma-2e277dd4ad96ef6f7ce3267eb05d0b84668df772.tar.gz |
Fix objects.
-rw-r--r-- | lib/pleroma/spc_fixes/spc_fixes.ex | 21 | ||||
-rw-r--r-- | test/spc_fixes_test.exs | 6 |
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/pleroma/spc_fixes/spc_fixes.ex b/lib/pleroma/spc_fixes/spc_fixes.ex index 41cf56fdd..86bbb7f6f 100644 --- a/lib/pleroma/spc_fixes/spc_fixes.ex +++ b/lib/pleroma/spc_fixes/spc_fixes.ex @@ -5,6 +5,7 @@ alias Pleroma.Repo alias Pleroma.User alias Pleroma.Activity +alias Pleroma.Object import Ecto.Query defmodule Pleroma.SpcFixes do @@ -87,6 +88,26 @@ defmodule Pleroma.SpcFixes do ) Repo.update_all(query, []) + + # Fix objects + query = + from(a in Object, + where: fragment("?->>'actor' = ?", a.data, ^mapping[user.ap_id]), + update: [ + set: [ + data: + fragment( + "jsonb_set(jsonb_set(?, '{actor}', ?), '{to}', (?->'to')::jsonb || ?)", + a.data, + ^user.ap_id, + a.data, + ^[user.follower_address] + ) + ] + ] + ) + + Repo.update_all(query, []) end) end end diff --git a/test/spc_fixes_test.exs b/test/spc_fixes_test.exs index 76c081248..67ab54ccf 100644 --- a/test/spc_fixes_test.exs +++ b/test/spc_fixes_test.exs @@ -11,6 +11,7 @@ defmodule Pleroma.SpcFixesTest do alias Pleroma.User alias Pleroma.Activity alias Pleroma.Repo + alias Pleroma.Object import Pleroma.Factory @@ -62,5 +63,10 @@ defmodule Pleroma.SpcFixesTest do assert activity.data["actor"] == user.ap_id assert user.follower_address in activity.recipients assert user.follower_address in activity.data["to"] + + object = Object.get_by_ap_id(activity.data["object"]["id"]) + + assert object.data["actor"] == user.ap_id + assert user.follower_address in object.data["to"] end end |