Impedir cuentas Battle.net duplicadas al activar; citar el límite real de 8

`registerAccount` ya rechazaba un correo con cuenta bnet, pero `activateAccount`
insertaba SIN volver a comprobarlo, y entre registrarse y activar el correo puede
dejar de estar libre. Como `battlenet_accounts.email` no tiene índice único, la
BD tampoco lo frenaba: hay 3 filas TEST@TEST.COM de 2024 que lo demuestran.
Ahora se recomprueba antes del INSERT y se borra la activación, que ya no sirve.
Nuevo error `emailExists` (ES/EN) para no soltar un «enlace inválido» que despista.

MAX_GAME_ACCOUNTS sube a lib/bnet.ts y lo usa el correo de activación: el texto
prometía 10 cuentas mientras el código cortaba en 8, justo por estar el número
escrito a mano en los dos sitios. El límite del panel ya funcionaba (API + aviso
«Has alcanzado el máximo de cuentas»); solo se centraliza la constante.

Verificado en producción con una activación pendiente de un correo que ya tenía
bnet: devuelve emailExists, no crea la cuenta y el contador no sube.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 18:02:54 +00:00
parent 1285d3398b
commit 4f8f101ba8
7 changed files with 30 additions and 4 deletions
+1
View File
@@ -206,6 +206,7 @@
"canPlay": "Ya puedes conectar a la página web o empezar a disfrutar del servidor.",
"invalidLink": "El enlace de activación es inválido",
"expiredLink": "El enlace de activación ha caducado",
"emailExists": "Ya existe una cuenta con ese correo",
"needHelp": "Si necesitas ayuda para crear una cuenta, puedes contactar con el equipo de {realm}.",
"title": "Activación de cuenta"
},