clear_cached_value :local_users for DashboardView

Related to #1915
This commit is contained in:
Massedil
2025-12-17 15:31:16 +01:00
parent 2c0adc8670
commit 6cbb3693bb

View File

@@ -10,6 +10,7 @@ defmodule Mobilizon.GraphQL.Resolvers.User do
alias Mobilizon.Federation.ActivityPub.Actions alias Mobilizon.Federation.ActivityPub.Actions
alias Mobilizon.Service.AntiSpam alias Mobilizon.Service.AntiSpam
alias Mobilizon.Service.Auth.Authenticator alias Mobilizon.Service.Auth.Authenticator
alias Mobilizon.Service.Statistics
alias Mobilizon.Storage.{Page, Repo} alias Mobilizon.Storage.{Page, Repo}
alias Mobilizon.Users.{Setting, User} alias Mobilizon.Users.{Setting, User}
@@ -182,6 +183,8 @@ defmodule Mobilizon.GraphQL.Resolvers.User do
role: role role: role
}) })
|> Users.register() do |> Users.register() do
# Invalidate the admin Dashboard user cache
Statistics.clear_cached_value(:local_users)
Email.User.send_confirmation_email(user, Map.get(args, :locale, "en")) Email.User.send_confirmation_email(user, Map.get(args, :locale, "en"))
{:ok, user} {:ok, user}
else else
@@ -626,6 +629,8 @@ defmodule Mobilizon.GraphQL.Resolvers.User do
with %User{disabled: true} = user <- Users.get_user(user_id), with %User{disabled: true} = user <- Users.get_user(user_id),
{:ok, %User{} = updated_user} <- {:ok, %User{} = updated_user} <-
Users.unban_user(user) do Users.unban_user(user) do
# Invalidate the admin Dashboard user cache
Statistics.clear_cached_value(:local_users)
Admin.log_action(moderator_actor, "unsuspend", user) Admin.log_action(moderator_actor, "unsuspend", user)
{:ok, updated_user} {:ok, updated_user}
else else
@@ -694,7 +699,14 @@ defmodule Mobilizon.GraphQL.Resolvers.User do
Actions.Delete.delete(actor, actor_performing, true) Actions.Delete.delete(actor, actor_performing, true)
end) do end) do
# Delete user # Delete user
Users.delete_user(user, reserve_email: Keyword.get(options, :reserve_email, activated)) with {:ok, user} <-
Users.delete_user(user,
reserve_email: Keyword.get(options, :reserve_email, activated)
) do
# Invalidate the admin Dashboard user cache
Statistics.clear_cached_value(:local_users)
{:ok, user}
end
end end
end end