import { d as defineEventHandler, r as readBody, c as createError } from '../../../nitro/nitro.mjs'; import { r as readUsers, h as hashPassword, w as writeUsers } from '../../../_/auth.mjs'; import nodemailer from 'nodemailer'; import 'node:http'; import 'node:https'; import 'node:events'; import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; import 'node:url'; import 'bcryptjs'; import 'jsonwebtoken'; import 'fs'; import 'path'; import '../../../_/encryption.mjs'; import 'crypto'; const register_post = defineEventHandler(async (event) => { try { const body = await readBody(event); const { name, email, phone, password } = body; if (!name || !email || !password) { throw createError({ statusCode: 400, message: "Name, E-Mail und Passwort sind erforderlich" }); } if (password.length < 8) { throw createError({ statusCode: 400, message: "Das Passwort muss mindestens 8 Zeichen lang sein" }); } const users = await readUsers(); const existingUser = users.find((u) => u.email.toLowerCase() === email.toLowerCase()); if (existingUser) { throw createError({ statusCode: 409, message: "Ein Benutzer mit dieser E-Mail-Adresse existiert bereits" }); } const hashedPassword = await hashPassword(password); const newUser = { id: Date.now().toString(), email: email.toLowerCase(), password: hashedPassword, name, phone: phone || "", role: "mitglied", active: false, // Requires admin approval created: (/* @__PURE__ */ new Date()).toISOString(), lastLogin: null }; users.push(newUser); await writeUsers(users); try { const transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST || "smtp.gmail.com", port: process.env.SMTP_PORT || 587, secure: false, auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS } }); await transporter.sendMail({ from: process.env.SMTP_FROM || "noreply@harheimertc.de", to: process.env.SMTP_ADMIN || "j.dichmann@gmx.de", subject: "Neue Registrierung - Harheimer TC", html: `

Neue Registrierung

Ein neuer Benutzer hat sich registriert und wartet auf Freigabe:

Bitte pr\xFCfen Sie die Registrierung im CMS.

` }); await transporter.sendMail({ from: process.env.SMTP_FROM || "noreply@harheimertc.de", to: email, subject: "Registrierung erhalten - Harheimer TC", html: `

Registrierung erhalten

Hallo ${name},

vielen Dank f\xFCr Ihre Registrierung beim Harheimer TC!

Ihre Anfrage wird vom Vorstand gepr\xFCft. Sie erhalten eine E-Mail, sobald Ihr Zugang freigeschaltet wurde.


Mit sportlichen Gr\xFC\xDFen,
Ihr Harheimer TC

` }); } catch (emailError) { console.error("E-Mail-Versand fehlgeschlagen:", emailError); } return { success: true, message: "Registrierung erfolgreich. Sie erhalten eine E-Mail, sobald Ihr Zugang freigeschaltet wurde." }; } catch (error) { console.error("Registrierungs-Fehler:", error); throw error; } }); export { register_post as default }; //# sourceMappingURL=register.post.mjs.map