X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/42ec7892e74f6d9d19f2f0155830565f447a861f..ae94f4d8463ff6350329e802cb902c8dad96a710:/src/common/redirect-to.ts diff --git a/src/common/redirect-to.ts b/src/common/redirect-to.ts index 54268c24..7cb0d580 100644 --- a/src/common/redirect-to.ts +++ b/src/common/redirect-to.ts @@ -2,25 +2,31 @@ // // SPDX-License-Identifier: AGPL-3.0 +import { Config } from './config'; + const REDIRECT_TO_KEY = 'redirectTo'; export const storeRedirects = () => { if (window.location.href.indexOf(REDIRECT_TO_KEY) > -1) { const { location: { href }, sessionStorage } = window; const redirectUrl = href.split(`${REDIRECT_TO_KEY}=`)[1]; - + if (sessionStorage) { sessionStorage.setItem(REDIRECT_TO_KEY, redirectUrl); } } }; -export const handleRedirects = (token: string) => { +export const handleRedirects = (token: string, config: Config) => { const { sessionStorage } = window; + const { keepWebServiceUrl } = config; if (sessionStorage && sessionStorage.getItem(REDIRECT_TO_KEY)) { const redirectUrl = sessionStorage.getItem(REDIRECT_TO_KEY); sessionStorage.removeItem(REDIRECT_TO_KEY); - window.location.href = `${redirectUrl}?api_token=${token}`; + if (redirectUrl) { + const sep = redirectUrl.indexOf("?") > -1 ? "&" : "?"; + window.location.href = `${keepWebServiceUrl}${redirectUrl}${sep}api_token=${token}`; + } } -}; \ No newline at end of file +};