diff --git a/src/components/UserNav.tsx b/src/components/UserNav.tsx index 94c6715..34889b3 100644 --- a/src/components/UserNav.tsx +++ b/src/components/UserNav.tsx @@ -21,7 +21,16 @@ interface UserNavProps { export function UserNav({ username, role }: UserNavProps) { const router = useRouter(); - const ADMIN_ROLES = ["auditor", "admin", "domain_admin", "superadmin"]; + const ADMIN_ROLES = ["auditor", "domain_auditor", "admin", "domain_admin", "superadmin"]; + + const ROLE_LABELS: Record = { + user: "Benutzer", + auditor: "Auditor", + domain_auditor: "Domain-Auditor", + admin: "Admin", + domain_admin: "Domain-Admin", + superadmin: "Superadmin", + }; async function handleLogout() { try { @@ -42,9 +51,11 @@ export function UserNav({ username, role }: UserNavProps) { aria-label="Benutzermenu" > {username} - - {role} - + {username !== role && ( + + {ROLE_LABELS[role] ?? role} + + )} diff --git a/src/components/navbar.tsx b/src/components/navbar.tsx index 7c3397e..ebfefea 100644 --- a/src/components/navbar.tsx +++ b/src/components/navbar.tsx @@ -31,7 +31,7 @@ export function Navbar({ username, role }: NavbarProps) { Suche )} - {role !== "superadmin" && ( + {(role === "user" || role === "domain_admin") && ( )} - {role !== "superadmin" && ( + {(role === "user" || role === "domain_admin") && ( )} - {(role === "admin" || role === "domain_admin" || role === "superadmin") && ( + {(role === "admin" || role === "domain_admin" || role === "domain_auditor" || role === "superadmin") && ( domain_admin(4) > admin(3) > auditor(2) > user(1) +// Role hierarchy: superadmin(5) > domain_admin(4) > domain_auditor(3) > auditor(2) > user(1) const roleLevels: Record = { user: 1, auditor: 2, - admin: 3, + domain_auditor: 3, + admin: 3, // legacy alias domain_admin: 4, superadmin: 5, };