From 6f24c587c69d7ac1fe96666a36f8bde286ca004b Mon Sep 17 00:00:00 2001 From: dklimpel <5740567+dklimpel@users.noreply.github.com> Date: Thu, 9 Apr 2020 20:43:52 +0200 Subject: [PATCH] Fix error if `public_baseurl` is not set --- src/components/LoginPage.js | 2 +- src/synapse/authProvider.js | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/src/components/LoginPage.js b/src/components/LoginPage.js index 2cd6cca..990b14e 100644 --- a/src/components/LoginPage.js +++ b/src/components/LoginPage.js @@ -72,7 +72,7 @@ const LoginPage = ({ theme }) => { const setLocale = useSetLocale(); const translate = useTranslate(); const homeserver = localStorage.getItem("base_url"); - const force_server = localStorage.getItem("force_server"); + const force_server = localStorage.getItem("force_server") === "true"; const renderInput = ({ meta: { touched, error } = {}, diff --git a/src/synapse/authProvider.js b/src/synapse/authProvider.js index ff38d10..8b7d85d 100644 --- a/src/synapse/authProvider.js +++ b/src/synapse/authProvider.js @@ -15,11 +15,11 @@ const stripTrailingSlash = str => { return str.endsWith("/") ? str.slice(0, -1) : str; }; -const getBaseUrl = (login_base_url, json_base_url, force_server) => { - if (force_server) { - return ensureHttpsForUrl(login_base_url); +const getBaseUrl = (login_url, json, force_server) => { + if (force_server || typeof json.well_known === "undefined") { + return ensureHttpsForUrl(login_url); } else { - return json_base_url; + return json.well_known["m.homeserver"].base_url; } }; @@ -43,11 +43,7 @@ const authProvider = { return fetchUtils.fetchJson(login_api_url, options).then(({ json }) => { const normalized_base_url = stripTrailingSlash( - getBaseUrl( - trimmed_url, - json.well_known["m.homeserver"].base_url, - force_server - ) + getBaseUrl(trimmed_url, json, force_server) ); localStorage.setItem("base_url", normalized_base_url);