File tree Expand file tree Collapse file tree 3 files changed +8
-3
lines changed
ee/server/hooks/federation
ee/packages/federation-matrix/src Expand file tree Collapse file tree 3 files changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -192,7 +192,11 @@ export const createRoom = async <T extends RoomType>(
192192
193193 // validate external users (network + user existence checks)
194194 try {
195- await FederationMatrix . validateFederatedUsersBeforeRoomCreation ( members ) ;
195+ // TODO: Use common function to extract and validate federated users
196+ const federatedUsers = members
197+ . filter ( ( member : string | IUser ) => ( typeof member === 'string' ? member . includes ( ':' ) : member . username ?. includes ( ':' ) ) )
198+ . map ( ( member : string | IUser ) => ( typeof member === 'string' ? member : member . username ! ) ) ;
199+ await FederationMatrix . validateFederatedUsers ( federatedUsers ) ;
196200 } catch ( error ) {
197201 if ( error instanceof FederationValidationError ) {
198202 throw new Meteor . Error ( error . error , error . userMessage , { method : 'createRoom' } ) ;
Original file line number Diff line number Diff line change @@ -214,7 +214,8 @@ callbacks.add(
214214 }
215215
216216 try {
217- await FederationMatrix . validateFederatedUsersBeforeRoomCreation ( members ) ;
217+ const federatedUsers = members . filter ( ( username ) => username . includes ( ':' ) ) ;
218+ await FederationMatrix . validateFederatedUsers ( federatedUsers ) ;
218219 } catch ( error ) {
219220 if ( error instanceof FederationValidationError ) {
220221 throw new Meteor . Error ( error . error , error . userMessage ) ;
Original file line number Diff line number Diff line change @@ -208,7 +208,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS
208208 this . processEDUPresence = ( await Settings . getValueById < boolean > ( 'Federation_Service_EDU_Process_Presence' ) ) || false ;
209209 }
210210
211- static async validateFederatedUsersBeforeRoomCreation ( usernames : string [ ] ) : Promise < void > {
211+ static async validateFederatedUsers ( usernames : string [ ] ) : Promise < void > {
212212 const hasInvalidFederatedUsername = usernames . some ( ( username ) => ! validateFederatedUsername ( username ) ) ;
213213 if ( hasInvalidFederatedUsername ) {
214214 throw new FederationValidationError (
You can’t perform that action at this time.
0 commit comments