fix: remove username references from admin page

- Replace u.username with u.slug in search filter
- Replace user display names from username to email (primary identifier in passwordless auth)
- Update avatar fallbacks to use email initials
- Update handleDeleteUser parameter from username to userEmail
- Align admin page with new user identification scheme
This commit is contained in:
XPS\Micro 2026-01-31 17:00:40 +01:00
parent fe4907ee46
commit b116d74f84

View File

@ -181,8 +181,8 @@ export default function AdminPage() {
setActionLoading(null); setActionLoading(null);
}; };
const handleDeleteUser = async (userId: number, username: string) => { const handleDeleteUser = async (userId: number, userEmail: string) => {
if (!confirm(`User "${username}" wirklich loeschen? Diese Aktion kann nicht rueckgaengig gemacht werden!`)) { if (!confirm(`User "${userEmail}" wirklich loeschen? Diese Aktion kann nicht rueckgaengig gemacht werden!`)) {
return; return;
} }
setActionLoading(userId); setActionLoading(userId);
@ -218,7 +218,7 @@ export default function AdminPage() {
// Gefilterte Users // Gefilterte Users
const filteredUsers = users.filter( const filteredUsers = users.filter(
(u) => (u) =>
u.username.toLowerCase().includes(searchTerm.toLowerCase()) || u.slug.toLowerCase().includes(searchTerm.toLowerCase()) ||
u.email.toLowerCase().includes(searchTerm.toLowerCase()) u.email.toLowerCase().includes(searchTerm.toLowerCase())
); );
@ -260,10 +260,10 @@ export default function AdminPage() {
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<Avatar className="h-8 w-8"> <Avatar className="h-8 w-8">
<AvatarFallback className="text-xs"> <AvatarFallback className="text-xs">
{user?.username.slice(0, 2).toUpperCase()} {user?.email.slice(0, 1).toUpperCase()}
</AvatarFallback> </AvatarFallback>
</Avatar> </Avatar>
<span className="text-sm font-medium">{user?.username}</span> <span className="text-sm font-medium">{user?.email}</span>
<Badge variant="secondary" className="text-xs"> <Badge variant="secondary" className="text-xs">
Admin Admin
</Badge> </Badge>
@ -403,12 +403,12 @@ export default function AdminPage() {
: "" : ""
}`} }`}
> >
{u.username.slice(0, 2).toUpperCase()} {u.email.slice(0, 1).toUpperCase()}
</AvatarFallback> </AvatarFallback>
</Avatar> </Avatar>
<div> <div>
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<span className="font-medium">{u.username}</span> <span className="font-medium">{u.email}</span>
{u.is_admin && ( {u.is_admin && (
<Badge variant="secondary" className="text-xs"> <Badge variant="secondary" className="text-xs">
Admin Admin
@ -538,7 +538,7 @@ export default function AdminPage() {
<Button <Button
variant="ghost" variant="ghost"
size="sm" size="sm"
onClick={() => handleDeleteUser(u.id, u.username)} onClick={() => handleDeleteUser(u.id, u.email)}
title="Benutzer loeschen" title="Benutzer loeschen"
className="text-red-600 hover:text-red-700" className="text-red-600 hover:text-red-700"
> >