Füge Sichtbarkeitspräferenzen für Mitgliederprofile hinzu: Ermögliche Benutzern, ihre E-Mail, Telefonnummer und Adresse für andere eingeloggte Mitglieder sichtbar zu machen. Aktualisiere die API, um diese Einstellungen zu respektieren und bei der Profildatenrückgabe zu berücksichtigen.
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 47s
Some checks failed
Code Analysis (JS/Vue) / analyze (push) Failing after 47s
This commit is contained in:
@@ -1,51 +1,36 @@
|
||||
import { verifyToken, getUserById, migrateUserRoles } from '../utils/auth.js'
|
||||
import { verifyToken, getUserFromToken } from '../utils/auth.js'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
try {
|
||||
const token = getCookie(event, 'auth_token')
|
||||
|
||||
if (!token) {
|
||||
throw createError({
|
||||
statusCode: 401,
|
||||
message: 'Nicht authentifiziert.'
|
||||
})
|
||||
throw createError({ statusCode: 401, message: 'Nicht authentifiziert.' })
|
||||
}
|
||||
|
||||
const decoded = verifyToken(token)
|
||||
|
||||
if (!decoded) {
|
||||
throw createError({
|
||||
statusCode: 401,
|
||||
message: 'Ungültiges Token.'
|
||||
})
|
||||
throw createError({ statusCode: 401, message: 'Ungültiges Token.' })
|
||||
}
|
||||
|
||||
const user = await getUserById(decoded.id)
|
||||
|
||||
if (!user || user.active === false) {
|
||||
throw createError({
|
||||
statusCode: 403,
|
||||
message: 'Benutzer nicht gefunden oder inaktiv.'
|
||||
})
|
||||
const user = await getUserFromToken(token)
|
||||
if (!user) {
|
||||
throw createError({ statusCode: 404, message: 'Benutzer nicht gefunden.' })
|
||||
}
|
||||
|
||||
const migratedUser = migrateUserRoles({ ...user })
|
||||
const roles = Array.isArray(migratedUser.roles) ? migratedUser.roles : (migratedUser.role ? [migratedUser.role] : ['mitglied'])
|
||||
|
||||
// Return user data (without password)
|
||||
// Rückgabe des eigenen Profils inkl. Sichtbarkeitspräferenzen
|
||||
return {
|
||||
success: true,
|
||||
user: {
|
||||
id: user.id,
|
||||
email: user.email,
|
||||
name: user.name,
|
||||
email: user.email,
|
||||
phone: user.phone || '',
|
||||
roles: roles,
|
||||
role: roles[0] || 'mitglied' // Rückwärtskompatibilität
|
||||
visibility: user.visibility || {}
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Profil-Abruf-Fehler:', error)
|
||||
console.error('Fehler beim Laden des Profil:', error)
|
||||
throw error
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user