* [PATCH] fix #7337: Keep track of deep link on OpenID login
@ 2026-03-12 14:30 Arthur Bied-Charreton
2026-03-19 10:05 ` Shannon Sterz
0 siblings, 1 reply; 3+ messages 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] 3+ messages in thread
* Re: [PATCH] fix #7337: Keep track of deep link on OpenID login
2026-03-12 14:30 [PATCH] fix #7337: Keep track of deep link on OpenID login Arthur Bied-Charreton
@ 2026-03-19 10:05 ` Shannon Sterz
2026-03-19 10:56 ` superseded " Arthur Bied-Charreton
0 siblings, 1 reply; 3+ messages in thread
From: Shannon Sterz @ 2026-03-19 10:05 UTC (permalink / raw)
To: Arthur Bied-Charreton; +Cc: pbs-devel
On Thu Mar 12, 2026 at 3:30 PM CET, Arthur Bied-Charreton wrote:
> 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);
nit: i think it would be nicer if this was prefixed, so something like
"pbs-openid-deeplink". also quickly grep-ing over the widget toolkit and
pbs ui directory, it seems that for local storage we tend to prefer
camel case, though that isn't consistent.
> 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`);
> + }
> },
> });
> }
other than the small nit above, this looks good to me so consider this:
Reviewed-by: Shannon Sterz <s.sterz@proxmox.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* superseded [PATCH] fix #7337: Keep track of deep link on OpenID login
2026-03-19 10:05 ` Shannon Sterz
@ 2026-03-19 10:56 ` Arthur Bied-Charreton
0 siblings, 0 replies; 3+ messages in thread
From: Arthur Bied-Charreton @ 2026-03-19 10:56 UTC (permalink / raw)
To: Shannon Sterz; +Cc: pbs-devel
On Thu, Mar 19, 2026 at 11:05:37AM +0100, Shannon Sterz wrote:
> On Thu Mar 12, 2026 at 3:30 PM CET, Arthur Bied-Charreton wrote:
> > 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);
>
> nit: i think it would be nicer if this was prefixed, so something like
> "pbs-openid-deeplink". also quickly grep-ing over the widget toolkit and
> pbs ui directory, it seems that for local storage we tend to prefer
> camel case, though that isn't consistent.
>
Ack, thanks for the suggestion! Added in v2:
superseded by:
https://lore.proxmox.com/pbs-devel/20260319105507.266484-1-a.bied-charreton@proxmox.com/T/#u
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-03-19 10:57 UTC | newest]
Thread overview: 3+ messages (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
2026-03-19 10:05 ` Shannon Sterz
2026-03-19 10:56 ` superseded " 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.