forked from AkkomaGang/akkoma
Fix objects.
This commit is contained in:
parent
aa8ddfdbe2
commit
2e277dd4ad
2 changed files with 27 additions and 0 deletions
|
@ -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 @@ def upgrade_users 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
|
||||
|
|
|
@ -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 @@ test "resets the ap_id and follower_address of old spc users" 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
|
||||
|
|
Loading…
Reference in a new issue