Make sure suspended actors are not in the AP cache anymore

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2022-04-06 15:49:42 +02:00
parent 501e0d12e4
commit da2254089c
3 changed files with 40 additions and 3 deletions

View File

@@ -29,9 +29,12 @@ defmodule Mobilizon.Web.Cache.ActivityPub do
@spec do_get_actor(String.t()) :: {:commit, Actor.t()} | {:ignore, nil}
defp do_get_actor("actor_" <> name) do
case Actor.find_or_make_actor_from_nickname(name) do
{:ok, %ActorModel{} = actor} ->
{:ok, %ActorModel{suspended: false} = actor} ->
{:commit, actor}
{:ok, %ActorModel{}} ->
{:ignore, nil}
{:error, _err} ->
{:ignore, nil}
end
@@ -45,9 +48,12 @@ defmodule Mobilizon.Web.Cache.ActivityPub do
def get_local_actor_by_name(name) do
Cachex.fetch(@cache, "local_actor_" <> name, fn "local_actor_" <> name ->
case Actors.get_local_actor_by_name(name) do
%ActorModel{} = actor ->
%ActorModel{suspended: false} = actor ->
{:commit, actor}
{:ok, %ActorModel{}} ->
{:ignore, nil}
nil ->
{:ignore, nil}
end