diff --git a/app/features/admin/actions/admin.server.ts b/app/features/admin/actions/admin.server.ts index 4f63512f4..32c9ca08c 100644 --- a/app/features/admin/actions/admin.server.ts +++ b/app/features/admin/actions/admin.server.ts @@ -39,6 +39,8 @@ export const action = async ({ request }: ActionFunctionArgs) => { errorToast(`Migration failed. Reason: ${errorMessage}`); } + await refreshBannedCache(); + message = "Account migrated"; break; } catch (err) { diff --git a/app/features/ban/loaders/suspended.server.ts b/app/features/ban/loaders/suspended.server.ts index 2dbed9b32..c8a878cbb 100644 --- a/app/features/ban/loaders/suspended.server.ts +++ b/app/features/ban/loaders/suspended.server.ts @@ -6,14 +6,19 @@ import { } from "~/features/auth/core/authenticator.server"; import { authSessionStorage } from "~/features/auth/core/session.server"; import type { Nullish } from "~/utils/types"; -import { userIsBanned } from "../core/banned.server"; +import { refreshBannedCache, userIsBanned } from "../core/banned.server"; export const loader = async ({ request }: LoaderFunctionArgs) => { const userId = await getUserIdEvenIfBanned(request); if (!userId || !userIsBanned(userId)) return redirect("/"); - const bannedStatus = (await AdminRepository.allBannedUsers()).get(userId)!; + const bannedStatus = (await AdminRepository.allBannedUsers()).get(userId); + + if (!bannedStatus) { + await refreshBannedCache(); + return redirect("/"); + } return { banned: bannedStatus.banned,