Konto: Passwort-Anmeldung pro Nutzer deaktivierbar
Schalter im eigenen Konto, erzwingt vorher mindestens einen registrierten Passkey (sonst Aussperrung). Durchsetzung beim Login: nach erfolgreicher Passwort-Prüfung wird bei deaktiviertem Flag sofort wieder abgemeldet; Passkey-Anmeldung bleibt davon unberührt.
This commit is contained in:
+2
-1
@@ -12,7 +12,7 @@ export default async function KontoPage() {
|
||||
|
||||
const { data: profile } = await supabase
|
||||
.from("profiles")
|
||||
.select("role, full_name")
|
||||
.select("role, full_name, password_auth_enabled")
|
||||
.eq("id", user.id)
|
||||
.single();
|
||||
if (!profile || !["staff", "admin"].includes(profile.role)) redirect("/");
|
||||
@@ -28,6 +28,7 @@ export default async function KontoPage() {
|
||||
role={profile.role}
|
||||
initialFullName={profile.full_name ?? ""}
|
||||
initialEmail={user.email ?? ""}
|
||||
initialPasswordAuthEnabled={profile.password_auth_enabled}
|
||||
/>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
+16
-1
@@ -46,7 +46,22 @@ export default function LoginPage() {
|
||||
setBusy(false);
|
||||
return;
|
||||
}
|
||||
await redirectByRole(data.user.id);
|
||||
|
||||
const { data: profile } = await supabase
|
||||
.from("profiles")
|
||||
.select("role, password_auth_enabled")
|
||||
.eq("id", data.user.id)
|
||||
.single();
|
||||
if (profile?.password_auth_enabled === false) {
|
||||
await supabase.auth.signOut();
|
||||
setError(
|
||||
"Die Anmeldung mit Passwort ist für dieses Konto deaktiviert. Bitte mit Passkey anmelden."
|
||||
);
|
||||
setBusy(false);
|
||||
return;
|
||||
}
|
||||
router.replace(profile?.role === "admin" ? "/admin" : "/intern");
|
||||
router.refresh();
|
||||
}
|
||||
|
||||
async function signInWithPasskey() {
|
||||
|
||||
Reference in New Issue
Block a user