From d37ed9c7bba1df93d71938caab705fa91ac4f2b0 Mon Sep 17 00:00:00 2001 From: Leo Vasanko Date: Mon, 7 Sep 2026 16:15:39 +0000 Subject: [PATCH] =?UTF-8?q?Admin=20UI:=20runtime=20diagnostics=20as=20a=20?= =?UTF-8?q?=F0=9F=94=B8=20list,=20placed=20after=20the=20origins=20help=20?= =?UTF-8?q?text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/admin/AdminDialogs.vue | 33 ++++++++++++++++++++--------- frontend/src/assets/style.css | 25 ++++++++++++++++++++++ 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/frontend/src/admin/AdminDialogs.vue b/frontend/src/admin/AdminDialogs.vue index 8b456f3..773e390 100644 --- a/frontend/src/admin/AdminDialogs.vue +++ b/frontend/src/admin/AdminDialogs.vue @@ -95,6 +95,15 @@ const lockoutWarning = computed(() => { return pageOriginAllowed(d.origins || [], rpId) ? null : window.location.host }) +// Whether any origin diagnostic is present (guards the list against +// occupying dialog spacing when empty) +const hasOriginDiagnostics = computed(() => { + const d = props.dialog?.data + if (props.dialog?.type !== 'domain-edit' || !d) return false + if (d.originValidation?.some(v => v === 'invalid' || v === 'unreachable' || v === 'mismatch')) return true + return relatedEntries.value.length > 5 || !!lockoutWarning.value +}) + function pageOriginAllowed(rows, rpId) { const toUrl = key => (isWildcardEntry(key) || key.includes('://')) ? key : 'https://' + key const inDomain = [] @@ -511,17 +520,19 @@ function onRemoveOrigin(i) { -

Some entries are invalid โ€” a bare '*' or '**' is not allowed, and wildcards only within the domain.

-

Some sites are unreachable โ€” make sure they are routed to this instance.

-

Some sites are reachable but do not serve this domain.

- Only the listed sites may sign in with {{ dialog.data.rp_id }} passkeys. Wildcards may be used: **.{{ dialog.data.rp_id }} allows the whole domain, *.{{ dialog.data.rp_id }} only a single subdomain level. + Only the listed sites may sign in with {{ dialog.data.rp_id }} passkeys. Wildcards may be used: **.{{ dialog.data.rp_id }} allows the whole domain, *.{{ dialog.data.rp_id }} only a single subdomain level.

-

Saving would lock you out: {{ lockoutWarning }} could no longer run sign-in ceremonies for this domain. Keep it listed, or mark an auth host.

+