Implemented the possibility ofa hidden user for playstore tests
Some checks failed
Code Analysis and Production Deploy / analyze (push) Failing after 5m40s
Code Analysis and Production Deploy / deploy-production (push) Has been skipped
Code Analysis and Production Deploy / deploy-test (push) Has been skipped

This commit is contained in:
Torsten Schulz (local)
2026-06-09 11:32:00 +02:00
parent 300dce9835
commit 530e544542
11 changed files with 184 additions and 42 deletions

View File

@@ -1,6 +1,6 @@
import { verifyToken, getUserFromToken, hasRole } from '../utils/auth.js'
import { readMembers } from '../utils/members.js'
import { readUsers, migrateUserRoles } from '../utils/auth.js'
import { readUsers, migrateUserRoles, isHiddenUser, normalizeUserEmail } from '../utils/auth.js'
export default defineEventHandler(async (event) => {
try {
@@ -52,7 +52,7 @@ export default defineEventHandler(async (event) => {
// Skip applications that are not yet accepted
continue
}
const normalizedEmail = member.email?.toLowerCase().trim() || ''
const normalizedEmail = normalizeUserEmail(member.email)
const fullName = `${member.firstName || ''} ${member.lastName || ''}`.trim()
const normalizedName = fullName.toLowerCase()
@@ -90,11 +90,13 @@ export default defineEventHandler(async (event) => {
}
}
const hiddenUserEmails = new Set(registeredUsers.filter(isHiddenUser).map(user => normalizeUserEmail(user.email)).filter(Boolean))
// Then add registered users (only active ones)
for (const user of registeredUsers) {
if (!user.active) continue
if (!user.active || isHiddenUser(user)) continue
const normalizedEmail = user.email?.toLowerCase().trim() || ''
const normalizedEmail = normalizeUserEmail(user.email)
const normalizedName = user.name?.toLowerCase().trim() || ''
// Hilfsfunktion: Extrahiere Vorname/Nachname aus user.name
@@ -208,7 +210,10 @@ export default defineEventHandler(async (event) => {
const isPrivilegedViewer = currentUser ? hasRole(currentUser, 'vorstand') : false
// Filtere den Admin-Account heraus
const filteredMembers = mergedMembers.filter(m => m.email?.toLowerCase() !== 'admin@harheimertc.de')
const filteredMembers = mergedMembers.filter(m => {
const email = normalizeUserEmail(m.email || m.loginEmail)
return email !== 'admin@harheimertc.de' && !hiddenUserEmails.has(email) && !m.hidden && !m.invisible && !m.isHidden
})
const sanitizedMembers = filteredMembers.map(member => {
// Default: show email/phone/address to other logged-in members unless member.visibility explicitly hides them
const visibility = member.visibility || {}