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.
|
||||
*/
|
||||
|
||||
import url from 'url';
|
||||
import Promise from 'bluebird';
|
||||
import SettingsStore from "./settings/SettingsStore";
|
||||
import { Service, presentTermsForServices, TermsNotSignedError } from './Terms';
|
||||
|
@ -104,9 +105,15 @@ class ScalarAuthClient {
|
|||
}).catch((e) => {
|
||||
if (e instanceof TermsNotSignedError) {
|
||||
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(
|
||||
Matrix.SERVICE_TYPES.IM,
|
||||
SdkConfig.get().integrations_rest_url,
|
||||
parsedImRestUrl.format(),
|
||||
token,
|
||||
)]).then(() => {
|
||||
return token;
|
||||
|
|
Loading…
Reference in a new issue