[#530] Prevents user info from being overwritten because of race conditions

and non-partial update of embed (in WebFinger.ensure_keys_present and other places).
This commit is contained in:
Ivan Tashkinov 2019-01-21 14:16:51 +03:00
parent 52006f8f8a
commit aa480f4a8b

View File

@ -140,8 +140,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
additional additional
), ),
{:ok, activity} <- insert(create_data, local), {:ok, activity} <- insert(create_data, local),
:ok <- maybe_federate(activity), # Changing note count prior to federation in order not to reload `actor` (potentially updated by federator)
{:ok, _actor} <- User.increase_note_count(actor) do {:ok, _actor} <- User.increase_note_count(actor),
:ok <- maybe_federate(activity) do
{:ok, activity} {:ok, activity}
end end
end end
@ -288,8 +289,9 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
with {:ok, _} <- Object.delete(object), with {:ok, _} <- Object.delete(object),
{:ok, activity} <- insert(data, local), {:ok, activity} <- insert(data, local),
:ok <- maybe_federate(activity), # Changing note count prior to federation in order not to reload `actor` (potentially updated by federator)
{:ok, _actor} <- User.decrease_note_count(user) do {:ok, _actor} <- User.decrease_note_count(user),
:ok <- maybe_federate(activity) do
{:ok, activity} {:ok, activity}
end end
end end