X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/8fdba020a6f5373f9f359423b682197e8a51c8ee..cf83b358f087a87b5ff095d3ed7a8c6920c60ffe:/src/common/config.ts diff --git a/src/common/config.ts b/src/common/config.ts index f9fb9f6a07..cf539f3dd5 100644 --- a/src/common/config.ts +++ b/src/common/config.ts @@ -23,6 +23,9 @@ export interface ClusterConfigJSON { Scheme: string } }; + Mail?: { + SupportEmailAddress: string; + }; Services: { Controller: { ExternalURL: string @@ -58,7 +61,21 @@ export interface ClusterConfigJSON { }; Login: { LoginCluster: string; - PAM: boolean; + Google: { + Enable: boolean; + } + LDAP: { + Enable: boolean; + } + OpenIDConnect: { + Enable: boolean; + } + PAM: { + Enable: boolean; + } + SSO: { + Enable: boolean; + } }; Collections: { ForwardSlashNameSubstitution: string; @@ -109,6 +126,17 @@ const getApiRevision = async (apiUrl: string) => { } }; +const removeTrailingSlashes = (config: ClusterConfigJSON): ClusterConfigJSON => { + const svcs: any = {}; + Object.keys(config.Services).map((s) => { + svcs[s] = config.Services[s]; + if (svcs[s].hasOwnProperty('ExternalURL')) { + svcs[s].ExternalURL = svcs[s].ExternalURL.replace(/\/+$/, ''); + } + }); + return {...config, Services: svcs}; +}; + export const fetchConfig = () => { return Axios .get(WORKBENCH_CONFIG_URL + "?nocache=" + (new Date()).getTime()) @@ -122,7 +150,7 @@ export const fetchConfig = () => { throw new Error(`Unable to start Workbench. API_HOST is undefined in ${WORKBENCH_CONFIG_URL} or the environment.`); } return Axios.get(getClusterConfigURL(workbenchConfig.API_HOST)).then(async response => { - const clusterConfigJSON = response.data; + const clusterConfigJSON = removeTrailingSlashes(response.data); const apiRevision = await getApiRevision(clusterConfigJSON.Services.Controller.ExternalURL); const config = { ...buildConfig(clusterConfigJSON), apiRevision }; const warnLocalConfig = (varName: string) => console.warn( @@ -188,7 +216,21 @@ export const mockClusterConfigJSON = (config: Partial): Clust }, Login: { LoginCluster: "", - PAM: false, + Google: { + Enable: false, + }, + LDAP: { + Enable: false, + }, + OpenIDConnect: { + Enable: false, + }, + PAM: { + Enable: false, + }, + SSO: { + Enable: false, + }, }, Collections: { ForwardSlashNameSubstitution: "",