X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/38d27e9783f7f760cee84cc225e86144069848c4..3f7e1a8afad27920adf8f03ce82eeb1ae58aa84f:/src/services/auth-service/auth-service.ts diff --git a/src/services/auth-service/auth-service.ts b/src/services/auth-service/auth-service.ts index 362f7b51..52bfa29e 100644 --- a/src/services/auth-service/auth-service.ts +++ b/src/services/auth-service/auth-service.ts @@ -22,6 +22,8 @@ export const USER_IS_ACTIVE = 'isActive'; export const USER_USERNAME = 'username'; export const USER_PREFS = 'prefs'; export const HOME_CLUSTER = 'homeCluster'; +export const LOCAL_STORAGE = 'localStorage'; +export const SESSION_STORAGE = 'sessionStorage'; export interface UserDetailsResponse { email: string; @@ -50,22 +52,32 @@ export class AuthService { return localStorage; } + public getStorageType() { + if (this.useSessionStorage) { + return SESSION_STORAGE; + } + return LOCAL_STORAGE; + } + public saveApiToken(token: string) { this.removeApiToken(); this.getStorage().setItem(API_TOKEN_KEY, token); const sp = token.split('/'); if (sp.length === 3) { - this.getStorage().setItem(HOME_CLUSTER, sp[1].substr(0, 5)); + this.getStorage().setItem(HOME_CLUSTER, sp[1].substring(0, 5)); } } + public setTargetUrl(url: string) { + localStorage.setItem(TARGET_URL, url); + } + public removeTargetURL() { localStorage.removeItem(TARGET_URL); - sessionStorage.removeItem(TARGET_URL); } public getTargetURL() { - return this.getStorage().getItem(TARGET_URL); + return localStorage.getItem(TARGET_URL); } public removeApiToken() { @@ -104,7 +116,7 @@ export class AuthService { const currentUrl = `${window.location.protocol}//${window.location.host}/token`; const homeClusterHost = remoteHosts[homeCluster]; const rd = new URL(window.location.href); - this.getStorage().setItem(TARGET_URL, rd.pathname + rd.search); + this.setTargetUrl(rd.pathname + rd.search); window.location.assign(`https://${homeClusterHost}/login?${(uuidPrefix !== homeCluster && homeCluster !== loginCluster) ? "remote=" + uuidPrefix + "&" : ""}return_to=${currentUrl}`); }