From 6ae48eed9d64343911ff48fe4faa57977957de91 Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Fri, 2 Jan 2026 13:06:52 -0300 Subject: [PATCH] portal: polish password links and request copy --- backend/atlas_portal/routes/auth_config.py | 4 ++++ frontend/src/auth.js | 4 ++++ frontend/src/views/AccountView.vue | 15 ++++++++++++++- frontend/src/views/AppsView.vue | 8 ++++---- frontend/src/views/RequestAccessView.vue | 6 +++--- 5 files changed, 29 insertions(+), 8 deletions(-) diff --git a/backend/atlas_portal/routes/auth_config.py b/backend/atlas_portal/routes/auth_config.py index 0e68cad..f43d822 100644 --- a/backend/atlas_portal/routes/auth_config.py +++ b/backend/atlas_portal/routes/auth_config.py @@ -29,6 +29,8 @@ def register(app) -> None: f"?client_id={quote(settings.KEYCLOAK_CLIENT_ID, safe='')}" f"&redirect_uri={redirect_uri}" ) + account_url = f"{issuer}/account" + account_password_url = f"{account_url}/#/security/signingin" return jsonify( { @@ -38,5 +40,7 @@ def register(app) -> None: "client_id": settings.KEYCLOAK_CLIENT_ID, "login_url": login_url, "reset_url": reset_url, + "account_url": account_url, + "account_password_url": account_password_url, } ) diff --git a/frontend/src/auth.js b/frontend/src/auth.js index 4727fd1..ec4b204 100644 --- a/frontend/src/auth.js +++ b/frontend/src/auth.js @@ -10,6 +10,8 @@ export const auth = reactive({ groups: [], loginUrl: "", resetUrl: "", + accountUrl: "", + accountPasswordUrl: "", token: "", }); @@ -44,6 +46,8 @@ export async function initAuth() { auth.enabled = Boolean(cfg.enabled); auth.loginUrl = cfg.login_url || ""; auth.resetUrl = cfg.reset_url || ""; + auth.accountUrl = cfg.account_url || ""; + auth.accountPasswordUrl = cfg.account_password_url || ""; if (!auth.enabled) return; diff --git a/frontend/src/views/AccountView.vue b/frontend/src/views/AccountView.vue index 65f702c..0cf2a3b 100644 --- a/frontend/src/views/AccountView.vue +++ b/frontend/src/views/AccountView.vue @@ -11,6 +11,15 @@
{{ auth.username }}
+ + Change password +
@@ -112,10 +121,10 @@ {{ jellyfin.username }} -
{{ jellyfin.syncDetail }}
{{ jellyfin.error }}
+
{{ jellyfin.syncDetail }}
@@ -528,6 +537,10 @@ button.primary { font-size: 12px; } +.jellyfin-detail { + margin-top: 12px; +} + .copy { background: transparent; border: 1px solid rgba(255, 255, 255, 0.14); diff --git a/frontend/src/views/AppsView.vue b/frontend/src/views/AppsView.vue index 8917e9c..7986a66 100644 --- a/frontend/src/views/AppsView.vue +++ b/frontend/src/views/AppsView.vue @@ -5,7 +5,7 @@

Atlas

Apps

- Service shortcuts for Atlas. Nextcloud is the hub, but everything is available directly too. + Service shortcuts for Atlas.

@@ -168,8 +168,8 @@ const sections = [ apps: [ { name: "Monero Node", - url: "https://monero.bstein.dev", - target: "_blank", + url: "/monero", + target: "_self", description: "Faster sync using the Atlas Monero node.", }, ], @@ -235,7 +235,7 @@ const sections = [ .tiles { display: grid; - grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; } diff --git a/frontend/src/views/RequestAccessView.vue b/frontend/src/views/RequestAccessView.vue index 8ed8959..f0a201e 100644 --- a/frontend/src/views/RequestAccessView.vue +++ b/frontend/src/views/RequestAccessView.vue @@ -5,7 +5,7 @@

Atlas

Request Access

- Self-serve signups are not enabled yet. Request access and an admin can approve your account. + Request access and an admin can approve your account.

@@ -19,7 +19,7 @@

- This creates a pending request in Atlas. If approved, you'll receive an email with next steps (if you provided one). + This creates a pending request in Atlas. If approved, check your request code for an onboarding link to complete setup.

@@ -43,7 +43,7 @@ class="input mono" type="email" autocomplete="email" - placeholder="you@example.com" + placeholder="you@example.com (optional)" :disabled="submitting" />