Skip to content

Commit 5be650f

Browse files
Register guests on the HS given by the via parameter
Der via Parameter im Einladungslink gibt an auf welchem Homeserver der Raum zu finden ist der verlinkt wird. Bisher wird davon ausgegangen dass das entweder der gleiche ist wie der Client-Default oder per Federation erreichbar. Das ist bei uns beides nicht der Fall, daher dieser Patch damit der Client den per via angegeben Homeserver nicht nur verwendet um den Raum zu finden sondern auch um sich dort anzumelden und evtl. einen Gastuser anzulegen. Dieses Verhalten wird möglicherweise bald im Upstream geändert: element-hq/element-web#14661 Change-Id: I240e63976e6ba48ec755fa0adc35c71f68a2193c
1 parent d33fbfa commit 5be650f

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

src/Lifecycle.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,6 @@ export function handleInvalidStoreError(e) {
226226
}
227227

228228
function _registerAsGuest(hsUrl, isUrl, defaultDeviceDisplayName) {
229-
console.log(`Doing guest login on ${hsUrl}`);
230229

231230
// create a temporary MatrixClient to do the login
232231
const client = Matrix.createClient({

src/components/structures/MatrixChat.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,11 +382,19 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
382382
private loadSession() {
383383
// the extra Promise.resolve() ensures that synchronous exceptions hit the same codepath as
384384
// asynchronous ones.
385+
386+
// test if a via server was given in the url
387+
let viaGuestHsUrl = null;
388+
if (this.props.startingFragmentQueryParams && this.props.startingFragmentQueryParams.via) {
389+
viaGuestHsUrl = "https://" + this.props.startingFragmentQueryParams.via;
390+
console.log("Via server is: " + viaGuestHsUrl);
391+
}
392+
385393
return Promise.resolve().then(() => {
386394
return Lifecycle.loadSession({
387395
fragmentQueryParams: this.props.startingFragmentQueryParams,
388396
enableGuest: this.props.enableGuest,
389-
guestHsUrl: this.getServerProperties().serverConfig.hsUrl,
397+
guestHsUrl: viaGuestHsUrl ? viaGuestHsUrl : this.getServerProperties().serverConfig.hsUrl,
390398
guestIsUrl: this.getServerProperties().serverConfig.isUrl,
391399
defaultDeviceDisplayName: this.props.defaultDeviceDisplayName,
392400
});

0 commit comments

Comments
 (0)