import type { Metadata } from "next"; import { oeffentlicheAdresse } from "@/lib/adressen"; import { Karte } from "@/components/karte"; import { Status } from "@/components/status"; import { oidcEinstellungen } from "@/server/auth/oidc"; import { darf } from "@/server/auth/rechte"; import { seiteSchuetzen } from "@/server/auth/zugang"; import { benutzerListe } from "@/server/services/benutzer"; import { schluesselFuer } from "@/server/services/schluessel"; import { tokensVon } from "@/server/services/tokens"; import { BenutzerVerwaltung } from "./benutzer-verwaltung"; import { PasswortAendern } from "./passwort-aendern"; import { SchluesselVerwaltung } from "./schluessel-verwaltung"; import { TokenVerwaltung } from "./token-verwaltung"; export const metadata: Metadata = { title: "Einstellungen" }; /** Einstellungen: eigene SSH-Schlüssel, CLI-Tokens, Passwort; für Admins die Benutzer. */ export default async function Einstellungen({ searchParams }: { searchParams: Promise<{ sso?: string }> }) { const benutzer = await seiteSchuetzen("eigeneZugaenge", "/einstellungen"); const sso = oidcEinstellungen(); const ssoFehler = (await searchParams).sso; const admin = darf(benutzer.rolle, "benutzerVerwalten"); return (

Einstellungen

Angemeldet als {benutzer.benutzername} · {benutzer.rolle === "ADMIN" ? "Admin" : "Operator"}

{benutzer.passwortHash ? : null} {sso ? (
{ssoFehler === "schon_verknuepft" ? ( Dieses SSO-Konto gehört schon zu einem anderen Benutzer. ) : null} {benutzer.oidcSubjekt ? ( Mit {sso.anzeigename} verknüpft – die Rolle kommt bei jeder SSO-Anmeldung aus den Gruppen. ) : ( <>

Dein Konto ist noch nicht mit {sso.anzeigename} verknüpft. Danach kannst du dich auch dort anmelden; die Rolle kommt dann aus den Gruppen beim Identity Provider.

)}
) : null} {admin ? : null}
); }