Strip path component from IM rest url
before passing to js-sdk. We continue to use the full URL for the calls done by matrix-react-sdk, but the standard terms API called by the js-sdk lives on the standard _matrix path. This means we don't support running IMs on a non-root path, but it's the only realistic way of transitioning to _matrix paths since configs in the wild contain bits of the API path. Once we've fully transitioned to _matrix URLs, we can give people a grace period to update their configs, then use the rest url as a regular base url.
This commit is contained in:
parent
84bb0eb696
commit
7d7878245b
1 changed files with 8 additions and 1 deletions
|
@ -15,6 +15,7 @@ See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import url from 'url';
|
||||||
import Promise from 'bluebird';
|
import Promise from 'bluebird';
|
||||||
import SettingsStore from "./settings/SettingsStore";
|
import SettingsStore from "./settings/SettingsStore";
|
||||||
import { Service, presentTermsForServices, TermsNotSignedError } from './Terms';
|
import { Service, presentTermsForServices, TermsNotSignedError } from './Terms';
|
||||||
|
@ -104,9 +105,15 @@ class ScalarAuthClient {
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
if (e instanceof TermsNotSignedError) {
|
if (e instanceof TermsNotSignedError) {
|
||||||
console.log("Integrations manager requires new terms to be agreed to");
|
console.log("Integrations manager requires new terms to be agreed to");
|
||||||
|
// The terms endpoints are new and so live on standard _matrix prefixes,
|
||||||
|
// but IM rest urls are currently configured with paths, so remove the
|
||||||
|
// path from the base URL before passing it to the js-sdk
|
||||||
|
const parsedImRestUrl = url.parse(SdkConfig.get().integrations_rest_url);
|
||||||
|
parsedImRestUrl.path = '';
|
||||||
|
parsedImRestUrl.pathname = '';
|
||||||
return presentTermsForServices([new Service(
|
return presentTermsForServices([new Service(
|
||||||
Matrix.SERVICE_TYPES.IM,
|
Matrix.SERVICE_TYPES.IM,
|
||||||
SdkConfig.get().integrations_rest_url,
|
parsedImRestUrl.format(),
|
||||||
token,
|
token,
|
||||||
)]).then(() => {
|
)]).then(() => {
|
||||||
return token;
|
return token;
|
||||||
|
|
Loading…
Reference in a new issue