Selvbetjent sammenslåing av to TeeCup-kontoer: keeper (initiativtaker) ber om sammenslåing, bekreftelseslenke sendt til taperens e-post beviser eierskap, taperens data (org-medlemskap/spillerkoblinger/runder/venner) flyttes over og taperens konto slettes. Ny migrasjon 077 (account_merge_ token, ikke kjørt mot ekte teecup_db ennå), ny app/account_merge.py (N+1-transaksjoner per RLS-grensen, fullt konfliktkart), nye endepunkter i app/routers/account_merge.py, ny frontend-seksjon i kontoinnstillinger + egen bekreftelsesside. Fant og fikset en reell RLS-relatert bug via testsuiten før produksjon: seks RLS-beskyttede tabeller var feilaktig plassert i den globale "trygt å re-peke"-løkken, forårsaket et krasj pga. en Postgres GUC-kvirk på pooled forbindelser. Se ADR-080 for full begrunnelse. 12 nye tester (95/95 backend totalt), full scratch-verifisert ende-til-ende inkl. lys/mørk, ekte teecup_db urørt. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
21 lines
651 B
TypeScript
21 lines
651 B
TypeScript
import { Wordmark } from "@/components/wordmark"
|
|
import { AccountMergeConfirmForm } from "@/components/account-merge-confirm-form"
|
|
|
|
export default async function AccountMergeConfirmPage({
|
|
params,
|
|
}: {
|
|
params: Promise<{ token: string }>
|
|
}) {
|
|
const { token } = await params
|
|
return (
|
|
<main className="flex min-h-[100dvh] flex-col items-center justify-center bg-background px-5 py-10">
|
|
<div className="flex w-full max-w-sm flex-col gap-8">
|
|
<header className="flex flex-col items-center gap-3 text-center">
|
|
<Wordmark />
|
|
</header>
|
|
|
|
<AccountMergeConfirmForm token={token} />
|
|
</div>
|
|
</main>
|
|
)
|
|
}
|