Allow default_server_config as a fallback config (#25682)
This commit is contained in:
parent
9ec3f79198
commit
93c17104f1
5 changed files with 105 additions and 13 deletions
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.",
|
||||
"Invalid configuration: a default_hs_url can't be specified along with default_server_name or default_server_config": "Invalid configuration: a default_hs_url can't be specified along with default_server_name or default_server_config",
|
||||
"Invalid configuration: no default server specified.": "Invalid configuration: no default server specified.",
|
||||
"Your Element is misconfigured": "Your Element is misconfigured",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Your Element configuration contains invalid JSON. Please correct the problem and reload the page.",
|
||||
|
|
|
@ -169,11 +169,11 @@ async function verifyServerConfig(): Promise<IConfigOptions> {
|
|||
const isUrl = config["default_is_url"];
|
||||
|
||||
const incompatibleOptions = [wkConfig, serverName, hsUrl].filter((i) => !!i);
|
||||
if (incompatibleOptions.length > 1) {
|
||||
if (hsUrl && (wkConfig || serverName)) {
|
||||
// noinspection ExceptionCaughtLocallyJS
|
||||
throw new UserFriendlyError(
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, " +
|
||||
"or default_hs_url.",
|
||||
"Invalid configuration: a default_hs_url can't be specified along with default_server_name " +
|
||||
"or default_server_config",
|
||||
);
|
||||
}
|
||||
if (incompatibleOptions.length < 1) {
|
||||
|
@ -201,7 +201,7 @@ async function verifyServerConfig(): Promise<IConfigOptions> {
|
|||
}
|
||||
|
||||
let discoveryResult: ClientConfig | undefined;
|
||||
if (wkConfig) {
|
||||
if (!serverName && wkConfig) {
|
||||
logger.log("Config uses a default_server_config - validating object");
|
||||
discoveryResult = await AutoDiscovery.fromDiscoveryConfig(wkConfig);
|
||||
}
|
||||
|
@ -213,6 +213,10 @@ async function verifyServerConfig(): Promise<IConfigOptions> {
|
|||
"use default_server_config instead.",
|
||||
);
|
||||
discoveryResult = await AutoDiscovery.findClientConfig(serverName);
|
||||
if (discoveryResult["m.homeserver"].base_url === null && wkConfig) {
|
||||
logger.log("Finding base_url failed but a default_server_config was found - using it as a fallback");
|
||||
discoveryResult = await AutoDiscovery.fromDiscoveryConfig(wkConfig);
|
||||
}
|
||||
}
|
||||
|
||||
validatedConfig = AutoDiscoveryUtils.buildValidatedConfigFromDiscovery(serverName, discoveryResult, true);
|
||||
|
|
|
@ -44,10 +44,10 @@ async function initPage(): Promise<void> {
|
|||
const defaultIsUrl = config?.["default_is_url"];
|
||||
|
||||
const incompatibleOptions = [wkConfig, serverName, defaultHsUrl].filter((i) => !!i);
|
||||
if (incompatibleOptions.length > 1) {
|
||||
if (defaultHsUrl && (wkConfig || serverName)) {
|
||||
return renderConfigError(
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, " +
|
||||
"or default_hs_url.",
|
||||
"Invalid configuration: a default_hs_url can't be specified along with default_server_name " +
|
||||
"or default_server_config",
|
||||
);
|
||||
}
|
||||
if (incompatibleOptions.length < 1) {
|
||||
|
@ -57,7 +57,7 @@ async function initPage(): Promise<void> {
|
|||
let hsUrl: string | undefined;
|
||||
let isUrl: string | undefined;
|
||||
|
||||
if (typeof wkConfig?.["m.homeserver"]?.["base_url"] === "string") {
|
||||
if (!serverName && typeof wkConfig?.["m.homeserver"]?.["base_url"] === "string") {
|
||||
hsUrl = wkConfig["m.homeserver"]["base_url"];
|
||||
|
||||
if (typeof wkConfig["m.identity_server"]?.["base_url"] === "string") {
|
||||
|
@ -78,8 +78,16 @@ async function initPage(): Promise<void> {
|
|||
}
|
||||
}
|
||||
} catch (e) {
|
||||
logger.error(e);
|
||||
return renderConfigError("Unable to fetch homeserver configuration");
|
||||
if (wkConfig && wkConfig["m.homeserver"]) {
|
||||
hsUrl = wkConfig["m.homeserver"]["base_url"] || undefined;
|
||||
|
||||
if (wkConfig["m.identity_server"]) {
|
||||
isUrl = wkConfig["m.identity_server"]["base_url"] || undefined;
|
||||
}
|
||||
} else {
|
||||
logger.error(e);
|
||||
return renderConfigError("Unable to fetch homeserver configuration");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue