import { getUserFromToken, readUsers, writeUsers } from '../../../utils/auth.js' import nodemailer from 'nodemailer' export default defineEventHandler(async (event) => { try { const token = getCookie(event, 'auth_token') const currentUser = await getUserFromToken(token) if (!currentUser || (currentUser.role !== 'admin' && currentUser.role !== 'vorstand')) { throw createError({ statusCode: 403, message: 'Zugriff verweigert' }) } const body = await readBody(event) const { userId, role } = body const users = await readUsers() const user = users.find(u => u.id === userId) if (!user) { throw createError({ statusCode: 404, message: 'Benutzer nicht gefunden' }) } // Activate user and set role user.active = true user.role = role || 'mitglied' const updatedUsers = users.map(u => u.id === userId ? user : u) await writeUsers(updatedUsers) // Send approval email try { const transporter = nodemailer.createTransporter({ 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: user.email, subject: 'Zugang freigeschaltet - Harheimer TC', html: `
Hallo ${user.name},
Ihr Zugang zum Mitgliederbereich wurde freigeschaltet!
Sie können sich jetzt mit Ihrer E-Mail-Adresse und Ihrem Passwort anmelden.
Mit sportlichen Grüßen,
Ihr Harheimer TC