diff --git a/frontend/src/admin/AdminDialogs.vue b/frontend/src/admin/AdminDialogs.vue
index dd88d34..4babce8 100644
--- a/frontend/src/admin/AdminDialogs.vue
+++ b/frontend/src/admin/AdminDialogs.vue
@@ -96,45 +96,6 @@ function copyText(value, label) {
A domain ({{ rpId }} or subdomain) restricts this permission to that host. An OIDC client UUID sends it as a groups claim to that client.
-
-
-
- - Auth Name (opt)
-
- - Discovery URL
-
- - Client ID
-
- - Client Secret
-
- -
-
-
- - Groups
- -
-
-
-
-
-
- No permissions defined.
-
-
- ⚠️ Save the secret now — it cannot be retrieved later.
- ⚠️ Saving will prevent access with the old secret.
-
- Configure these in the client application.
-
-
-
-
-
-
{{ dialog.data.message }}
diff --git a/frontend/src/admin/AdminOidcDetail.vue b/frontend/src/admin/AdminOidcDetail.vue
index 8fa36e6..3b191a9 100644
--- a/frontend/src/admin/AdminOidcDetail.vue
+++ b/frontend/src/admin/AdminOidcDetail.vue
@@ -125,27 +125,37 @@ defineExpose({ focusFirstElement })
Configure these values in the client application.
- - Auth Name (opt)
-
+ - Authentication Name
+ -
+
+ (Login With, may affect URLs – optional)
+
- Discovery URL
-
+
- Client ID
-
+
- Client Secret
-
- - (only stored in hashed form)
+ -
+
+ (only stored in hashed form)
+
+
+
+ - Groups Name
+ -
+
+
+
- Groups
-
-
-
-
+
- No permissions defined.
+ (no permissions defined)
@@ -236,17 +246,18 @@ defineExpose({ focusFirstElement })
.oidc-dl dd {
margin: 0;
- cursor: pointer;
overflow: hidden;
+ display: flex;
+ align-items: baseline;
+ gap: 0.5em;
}
.oidc-dl output {
font-family: var(--font-mono, monospace);
- font-size: 0.85rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
- display: block;
+ min-width: 0;
}
.warning-text {
@@ -254,9 +265,8 @@ defineExpose({ focusFirstElement })
margin: var(--space-sm) 0 0 0;
}
-.oidc-groups { cursor: default; }
-.oidc-group { cursor: pointer; }
-.oidc-group output { white-space: normal; word-break: break-all; }
+.oidc-group { display: block; }
+.oidc-group { white-space: normal; word-break: break-all; }
.oidc-divider {
border: none;
diff --git a/frontend/src/assets/style.css b/frontend/src/assets/style.css
index 65d5f9d..b3d6141 100644
--- a/frontend/src/assets/style.css
+++ b/frontend/src/assets/style.css
@@ -279,6 +279,10 @@ button:disabled {
filter: opacity(0.6);
}
+output[title="Click to copy"] {
+ cursor: pointer;
+}
+
.btn-primary {
background: linear-gradient(to bottom, oklch(1 0 0 / 0.15), transparent 60%) var(--color-accent);
color: var(--color-accent-contrast);
diff --git a/paskia/util/apistructs.py b/paskia/util/apistructs.py
index 514d954..f624332 100644
--- a/paskia/util/apistructs.py
+++ b/paskia/util/apistructs.py
@@ -111,9 +111,8 @@ class ApiSession(msgspec.Struct, omit_defaults=True):
user_agent=useragent.compact_user_agent(s.user_agent),
last_renewed=s.expiry - expires_delta,
is_current=s.key == current_key,
- is_current_host=not s.client_uuid and bool(
- normalized_host and s.host and s.host == normalized_host
- ),
+ is_current_host=not s.client_uuid
+ and bool(normalized_host and s.host and s.host == normalized_host),
client_uuid=s.client_uuid,
client_name=client_name,
)