Los correos de cambio de correo saludan con la cuenta, no con «15#1»

Decían «Hola 15#1»: el username interno, que no le dice nada a nadie. Ahora
«Hola INNA@INNA.CL (WOW1)» — el correo, que es la cuenta con Battle.net, y la
cuenta de juego con su nombre visible. Si no se sabe cuál es, va el correo solo,
sin paréntesis vacío.

Afecta a las 3 plantillas del cambio de correo. En la que va al correo NUEVO se
saluda con `old_email`: el cambio aún no ha terminado, así que la cuenta se sigue
identificando con el correo viejo (hay que añadirlo al SELECT).

El original de Django también decía «Hola {{ username }}», así que esto es un
arreglo, no una copia.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-15 19:26:46 +00:00
parent 4a7a970206
commit 4303e9fc88
2 changed files with 38 additions and 9 deletions
+5 -3
View File
@@ -43,14 +43,16 @@ export async function requestEmailChange(
await sendMail(
current,
`Confirma el cambio de correo - NightSpire`,
confirmOldEmailHtml(session.username ?? current, newEmail, link),
confirmOldEmailHtml(current, session.username ?? null, newEmail, link),
)
return { success: true }
}
export async function confirmOldEmail(hash: string): Promise<Result> {
// `old_email` es el correo con el que la cuenta se identifica AHORA: el cambio
// aún no ha terminado, así que es con ese con el que hay que saludar.
const [rows] = await db(DB.default).query<RowDataPacket[]>(
'SELECT id, email, hash, username FROM accountactivation WHERE old_email_hash = ? AND is_used = 0',
'SELECT id, email, old_email, hash, username FROM accountactivation WHERE old_email_hash = ? AND is_used = 0',
[hash],
)
const act = rows[0]
@@ -62,7 +64,7 @@ export async function confirmOldEmail(hash: string): Promise<Result> {
await sendMail(
act.email,
`Confirma tu nuevo correo - NightSpire`,
confirmNewEmailHtml(act.username ?? act.email, link),
confirmNewEmailHtml(act.old_email || act.email, act.username ?? null, link),
)
return { success: true }
}