From 6cbb3693bb87c9a73685c8709e2ec2fa13acc661 Mon Sep 17 00:00:00 2001 From: Massedil Date: Wed, 17 Dec 2025 15:31:16 +0100 Subject: [PATCH] clear_cached_value :local_users for DashboardView Related to #1915 --- lib/graphql/resolvers/user.ex | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/graphql/resolvers/user.ex b/lib/graphql/resolvers/user.ex index 1bd8d4872..4b02b31b7 100644 --- a/lib/graphql/resolvers/user.ex +++ b/lib/graphql/resolvers/user.ex @@ -10,6 +10,7 @@ defmodule Mobilizon.GraphQL.Resolvers.User do alias Mobilizon.Federation.ActivityPub.Actions alias Mobilizon.Service.AntiSpam alias Mobilizon.Service.Auth.Authenticator + alias Mobilizon.Service.Statistics alias Mobilizon.Storage.{Page, Repo} alias Mobilizon.Users.{Setting, User} @@ -182,6 +183,8 @@ defmodule Mobilizon.GraphQL.Resolvers.User do role: role }) |> 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")) {:ok, user} else @@ -626,6 +629,8 @@ defmodule Mobilizon.GraphQL.Resolvers.User do with %User{disabled: true} = user <- Users.get_user(user_id), {:ok, %User{} = updated_user} <- Users.unban_user(user) do + # Invalidate the admin Dashboard user cache + Statistics.clear_cached_value(:local_users) Admin.log_action(moderator_actor, "unsuspend", user) {:ok, updated_user} else @@ -694,7 +699,14 @@ defmodule Mobilizon.GraphQL.Resolvers.User do Actions.Delete.delete(actor, actor_performing, true) end) do # 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