import { getUserFromToken, readUsers, hasAnyRole, hasRole, migrateUserRoles } from '../../../utils/auth.js' export default defineEventHandler(async (event) => { try { const token = getCookie(event, 'auth_token') const currentUser = await getUserFromToken(token) // Seite darf von Admin ODER Vorstand genutzt werden if (!currentUser || !hasAnyRole(currentUser, 'admin', 'vorstand')) { throw createError({ statusCode: 403, message: 'Zugriff verweigert' }) } const users = await readUsers() const isVorstand = hasRole(currentUser, 'vorstand') // Nur Admin oder Vorstand duerfen vollen Benutzer-Contact und Rollen sehen. const canSeePrivate = hasAnyRole(currentUser, 'admin', 'vorstand') const safeUsers = users.map(u => { const migrated = migrateUserRoles({ ...u }) const roles = Array.isArray(migrated.roles) ? migrated.roles : (migrated.role ? [migrated.role] : ['mitglied']) return canSeePrivate ? { id: u.id, email: u.email, name: u.name, roles: roles, role: roles[0] || 'mitglied', phone: u.phone || '', active: u.active, created: u.created, lastLogin: u.lastLogin } : { id: u.id, name: u.name, role: roles[0] || 'mitglied', active: u.active, lastLogin: u.lastLogin } }) return { users: safeUsers } } catch (error) { console.error('Fehler beim Laden der Benutzer:', error) throw error } })