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:
@@ -2,9 +2,8 @@ import type { ResultSetHeader, RowDataPacket } from 'mysql2'
|
||||
import { db, DB } from '@/lib/db'
|
||||
import { getSession } from '@/lib/session'
|
||||
import { authenticate } from '@/lib/auth'
|
||||
import { gameMakeRegistration, makeGameAccountUsername, normalizeEmail } from '@/lib/bnet'
|
||||
import { gameMakeRegistration, makeGameAccountUsername, normalizeEmail, MAX_GAME_ACCOUNTS } from '@/lib/bnet'
|
||||
|
||||
const MAX_GAME_ACCOUNTS = 8 // Battle.net: WoW1…WoW8
|
||||
|
||||
/**
|
||||
* Crea una nueva cuenta de juego (WoW2, WoW3…) bajo la Battle.net de la sesión.
|
||||
|
||||
Reference in New Issue
Block a user