* [PATCH] fix #7337: Keep track of deep link on OpenID login
@ 2026-03-12 14:30 Arthur Bied-Charreton
0 siblings, 0 replies; only message in thread
From: Arthur Bied-Charreton @ 2026-03-12 14:30 UTC (permalink / raw)
To: pbs-devel
Previously, when opening a deep link without being logged into PBS, the
hash was getting lost, redirecting the user to #pbsDashboard instead of
/#<deeplink>.
Store `window.location.hash` in sessionStorage (per-tab storage) before
redirecting to the login URL, and add it to the history after successful
login to direct the user to the deeplink they opened.
`#pbsDashboard` remains the default redirect if no deeplink is stored.
Signed-off-by: Arthur Bied-Charreton <a.bied-charreton@proxmox.com>
---
www/LoginView.js | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/www/LoginView.js b/www/LoginView.js
index fd9594f6..b72e4223 100644
--- a/www/LoginView.js
+++ b/www/LoginView.js
@@ -48,6 +48,7 @@ Ext.define('PBS.LoginView', {
if (this.getViewModel().data.openid === true) {
const redirectURL = location.origin;
+ sessionStorage.setItem('openid-deeplink', location.hash);
try {
let resp = await Proxmox.Async.api2({
url: '/api2/extjs/access/openid/auth-url',
@@ -217,7 +218,13 @@ Ext.define('PBS.LoginView', {
let creds = response.result.data;
PBS.Utils.updateLoginData(creds);
PBS.app.changeView('mainview');
- history.replaceState(null, '', `${redirectURL}#pbsDashboard`);
+ let deeplink = sessionStorage.getItem('openid-deeplink');
+ if (deeplink) {
+ sessionStorage.removeItem('openid-deeplink');
+ history.replaceState(null, '', `${redirectURL}${deeplink}`);
+ } else {
+ history.replaceState(null, '', `${redirectURL}#pbsDashboard`);
+ }
},
});
}
--
2.47.3
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-03-12 14:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-03-12 14:30 [PATCH] fix #7337: Keep track of deep link on OpenID login Arthur Bied-Charreton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.