- createTenant ahora reusa User si el email ya existe globalmente
(hace upsert de membership en vez de crear user duplicado)
- Arregla error de express-rate-limit con X-Forwarded-For:
app.set('trust proxy', 1) para que funcione detrás de Cloudflare
- Tipos de email templates actualizados para tempPassword nullable
18 lines
1.1 KiB
TypeScript
18 lines
1.1 KiB
TypeScript
import { baseTemplate, heading, primaryButton, infoBox, BRAND_COLORS as C } from './base.js';
|
|
|
|
export function welcomeEmail(data: { nombre: string; email: string; tempPassword: string | null | undefined }): string {
|
|
return baseTemplate(`
|
|
${heading('Bienvenido a Horux 360')}
|
|
<p style="color:${C.textPrimary};margin:0 0 16px;">Hola <strong>${data.nombre}</strong>,</p>
|
|
<p style="color:${C.textPrimary};margin:0 0 20px;">Tu cuenta ha sido creada exitosamente. Estas son tus credenciales de acceso:</p>
|
|
${infoBox(`
|
|
<p style="margin:0;color:${C.textMuted};font-size:13px;">Email</p>
|
|
<p style="margin:2px 0 12px;color:${C.textPrimary};font-weight:600;font-family:monospace;">${data.email}</p>
|
|
<p style="margin:0;color:${C.textMuted};font-size:13px;">Contraseña temporal</p>
|
|
<p style="margin:2px 0 0;color:${C.textPrimary};font-weight:600;font-family:monospace;">${data.tempPassword}</p>
|
|
`)}
|
|
<p style="color:${C.textMuted};margin:0 0 24px;font-size:14px;">Por seguridad, te recomendamos cambiar tu contraseña la primera vez que inicies sesión.</p>
|
|
${primaryButton('Iniciar sesión', 'https://horuxfin.com/login')}
|
|
`);
|
|
}
|