fix(users): refactor user admin actions to return status objects instead of throwing to prevent production error obfuscation
All checks were successful
Staging Build / build (push) Successful in 3m29s
All checks were successful
Staging Build / build (push) Successful in 3m29s
This commit is contained in:
@@ -63,17 +63,22 @@ export function UserList({ initialUsers, companies }: UserListProps) {
|
||||
if (confirm('Möchten Sie diesen Benutzer wirklich löschen?')) {
|
||||
setLoadingId(id)
|
||||
try {
|
||||
await deleteUser(id)
|
||||
router.refresh()
|
||||
const res = await deleteUser(id)
|
||||
if (res.success) {
|
||||
router.refresh()
|
||||
} else {
|
||||
console.error('Fehler beim Löschen des Benutzers:', res.error)
|
||||
if (res.error?.includes('Belege')) {
|
||||
if (confirm('Löschen nicht möglich! Auf diesen User existieren bereits Belege. Möchten Sie diesen Benutzer stattdessen sperren?')) {
|
||||
await handleRoleChange(id, 'gesperrt')
|
||||
}
|
||||
} else {
|
||||
alert('Fehler beim Löschen: ' + res.error)
|
||||
}
|
||||
}
|
||||
} catch (e: any) {
|
||||
console.error('Fehler beim Löschen des Benutzers:', e)
|
||||
if (e.message?.includes('Belege')) {
|
||||
if (confirm('Löschen nicht möglich! Auf diesen User existieren bereits Belege. Möchten Sie diesen Benutzer stattdessen sperren?')) {
|
||||
await handleRoleChange(id, 'gesperrt')
|
||||
}
|
||||
} else {
|
||||
alert('Fehler beim Löschen: ' + (e.message || JSON.stringify(e)))
|
||||
}
|
||||
alert('Fehler beim Löschen: ' + (e.message || JSON.stringify(e)))
|
||||
} finally {
|
||||
setLoadingId(null)
|
||||
}
|
||||
@@ -83,10 +88,15 @@ export function UserList({ initialUsers, companies }: UserListProps) {
|
||||
const handleRoleChange = async (id: string, newRole: Role) => {
|
||||
setLoadingId(id + '-role')
|
||||
try {
|
||||
await updateUserRole(id, newRole)
|
||||
router.refresh()
|
||||
} catch (e) {
|
||||
const res = await updateUserRole(id, newRole)
|
||||
if (res.success) {
|
||||
router.refresh()
|
||||
} else {
|
||||
alert(res.error || 'Fehler beim Ändern der Rolle.')
|
||||
}
|
||||
} catch (e: any) {
|
||||
console.error('Fehler beim Ändern der Rolle:', e)
|
||||
alert('Fehler beim Ändern der Rolle: ' + (e.message || JSON.stringify(e)))
|
||||
} finally {
|
||||
setLoadingId(null)
|
||||
}
|
||||
@@ -96,10 +106,15 @@ export function UserList({ initialUsers, companies }: UserListProps) {
|
||||
const newRole = currentRole === 'gesperrt' ? 'partner' : 'gesperrt'
|
||||
setLoadingId(id + '-lock')
|
||||
try {
|
||||
await updateUserRole(id, newRole)
|
||||
router.refresh()
|
||||
} catch (e) {
|
||||
const res = await updateUserRole(id, newRole)
|
||||
if (res.success) {
|
||||
router.refresh()
|
||||
} else {
|
||||
alert(res.error || 'Fehler beim Sperren/Entsperren.')
|
||||
}
|
||||
} catch (e: any) {
|
||||
console.error('Fehler beim Sperren/Entsperren:', e)
|
||||
alert('Fehler beim Sperren/Entsperren: ' + (e.message || JSON.stringify(e)))
|
||||
} finally {
|
||||
setLoadingId(null)
|
||||
}
|
||||
@@ -241,10 +256,15 @@ export function UserList({ initialUsers, companies }: UserListProps) {
|
||||
const val = e.target.value.trim()
|
||||
if (val !== (user.first_name || '')) {
|
||||
try {
|
||||
await updateUserProfile(user.id, { first_name: val || null, last_name: user.last_name })
|
||||
router.refresh()
|
||||
} catch (err) {
|
||||
const res = await updateUserProfile(user.id, { first_name: val || null, last_name: user.last_name })
|
||||
if (res.success) {
|
||||
router.refresh()
|
||||
} else {
|
||||
alert(res.error || 'Fehler beim Aktualisieren des Vornamens.')
|
||||
}
|
||||
} catch (err: any) {
|
||||
console.error('Failed to update first name:', err)
|
||||
alert('Fehler beim Aktualisieren des Vornamens: ' + (err.message || JSON.stringify(err)))
|
||||
}
|
||||
}
|
||||
}}
|
||||
@@ -263,10 +283,15 @@ export function UserList({ initialUsers, companies }: UserListProps) {
|
||||
const val = e.target.value.trim()
|
||||
if (val !== (user.last_name || '')) {
|
||||
try {
|
||||
await updateUserProfile(user.id, { first_name: user.first_name, last_name: val || null })
|
||||
router.refresh()
|
||||
} catch (err) {
|
||||
const res = await updateUserProfile(user.id, { first_name: user.first_name, last_name: val || null })
|
||||
if (res.success) {
|
||||
router.refresh()
|
||||
} else {
|
||||
alert(res.error || 'Fehler beim Aktualisieren des Nachnamens.')
|
||||
}
|
||||
} catch (err: any) {
|
||||
console.error('Failed to update last name:', err)
|
||||
alert('Fehler beim Aktualisieren des Nachnamens: ' + (err.message || JSON.stringify(err)))
|
||||
}
|
||||
}
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user