From e94d69058733e02a672d7c816ef37cb78220750d Mon Sep 17 00:00:00 2001 From: ElementRobot Date: Mon, 11 Aug 2025 12:50:40 +0200 Subject: [PATCH] Use userId to filter users in non-federated rooms when showing the InviteDialog (#30364) (#30537) * Use userId to filter users in non-federated rooms. * a line * another line * Add getDomain to Jest test (cherry picked from commit 700068a558023856f34fc0cbdbad3230c6c80878) Co-authored-by: Will Hunt --- src/components/views/dialogs/InviteDialog.tsx | 16 +++++++++------- .../views/dialogs/InviteDialog-test.tsx | 2 ++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/components/views/dialogs/InviteDialog.tsx b/src/components/views/dialogs/InviteDialog.tsx index 62536acfd6..81a403bacf 100644 --- a/src/components/views/dialogs/InviteDialog.tsx +++ b/src/components/views/dialogs/InviteDialog.tsx @@ -358,20 +358,22 @@ export default class InviteDialog extends React.PureComponent excludedIds.add(m.userId)); room.getMembersWithMembership(KnownMembership.Join).forEach((m) => excludedIds.add(m.userId)); // add banned users, so we don't try to invite them room.getMembersWithMembership(KnownMembership.Ban).forEach((m) => excludedIds.add(m.userId)); - if (isFederated === false) { + const ourHomeserver = cli.getDomain(); + if (isFederated === false && ourHomeserver) { + // If this room isn't federated, we must be on the same server. // exclude users from external servers - const homeserver = props.roomId.split(":")[1]; - this.excludeExternals(homeserver, excludedIds); + this.excludeExternals(ourHomeserver, excludedIds); } } @@ -385,7 +387,7 @@ export default class InviteDialog extends React.PureComponent { expect(getSearchField()).toHaveValue(value); }; +const serverDomain = "example.org"; const roomId = "!111111111111111111:example.org"; const aliceId = "@alice:example.org"; const aliceEmail = "foobar@email.com"; @@ -103,6 +104,7 @@ describe("InviteDialog", () => { beforeEach(() => { mockClient = getMockClientWithEventEmitter({ + getDomain: jest.fn().mockReturnValue(serverDomain), getUserId: jest.fn().mockReturnValue(bobId), getSafeUserId: jest.fn().mockReturnValue(bobId), isGuest: jest.fn().mockReturnValue(false),