Skip to content

Commit 742867f

Browse files
committed
regression: validate adding federated users to non-federated rooms
1 parent 0dc1b09 commit 742867f

File tree

1 file changed

+6
-0
lines changed
  • apps/meteor/ee/server/hooks/federation

1 file changed

+6
-0
lines changed

apps/meteor/ee/server/hooks/federation/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {
77
type IRoom,
88
type IUser,
99
} from '@rocket.chat/core-typings';
10+
import { validateFederatedUsername } from '@rocket.chat/federation-matrix';
1011
import { Rooms } from '@rocket.chat/models';
1112

1213
import { callbacks } from '../../../../lib/callbacks';
@@ -94,6 +95,11 @@ callbacks.add(
9495

9596
beforeAddUsersToRoom.add(async ({ usernames, inviter }, room) => {
9697
if (!FederationActions.shouldPerformFederationAction(room) && inviter) {
98+
// check if trying to invite a federated user to a non-federated room
99+
const federatedUsernames = usernames.filter((u) => validateFederatedUsername(u));
100+
if (federatedUsernames.length > 0) {
101+
throw new MeteorError('error-federated-users-in-non-federated-rooms', 'Cannot add federated users to non-federated rooms');
102+
}
97103
return;
98104
}
99105

0 commit comments

Comments
 (0)