Update dependencies to include TinyMCE and Quill, enhance Navigation component with a new Newsletter submenu, and implement role-based access control for CMS features. Refactor user role handling to support multiple roles and improve user management functionality across various API endpoints.

This commit is contained in:
Torsten Schulz (local)
2025-12-19 09:51:28 +01:00
parent baf6c59c0d
commit 435e28fd55
69 changed files with 5034 additions and 276 deletions

View File

@@ -0,0 +1,62 @@
import { readSubscribers, writeSubscribers } from '../../utils/newsletter.js'
export default defineEventHandler(async (event) => {
try {
const query = getQuery(event)
const token = query.token
if (!token) {
throw createError({
statusCode: 400,
statusMessage: 'Bestätigungstoken fehlt'
})
}
const subscribers = await readSubscribers()
const subscriber = subscribers.find(s => s.confirmationToken === token)
if (!subscriber) {
throw createError({
statusCode: 404,
statusMessage: 'Ungültiger Bestätigungstoken'
})
}
if (subscriber.confirmed) {
// Bereits bestätigt
return {
success: true,
alreadyConfirmed: true,
message: 'Newsletter-Anmeldung wurde bereits bestätigt'
}
}
// Bestätigung durchführen
subscriber.confirmed = true
subscriber.confirmedAt = new Date().toISOString()
subscriber.confirmationToken = null
// Stelle sicher, dass groupIds existiert (für Rückwärtskompatibilität)
if (!subscriber.groupIds) {
subscriber.groupIds = []
}
await writeSubscribers(subscribers)
return {
success: true,
alreadyConfirmed: false,
message: 'Newsletter-Anmeldung erfolgreich bestätigt'
}
} catch (error) {
console.error('Fehler bei Newsletter-Bestätigung:', error)
if (error.statusCode) {
throw error
}
throw createError({
statusCode: 500,
statusMessage: 'Fehler bei der Newsletter-Bestätigung'
})
}
})