From cb4a18028f1d75d6294c864ae1f05718f2745724 Mon Sep 17 00:00:00 2001 From: Rodrigo Nascimento Date: Thu, 16 Oct 2025 01:40:13 +0200 Subject: [PATCH] fix: can't add local users on remote rooms --- .../src/services/room.service.ts | 5 ++-- .../controllers/internal/room.controller.ts | 27 ------------------- 2 files changed, 3 insertions(+), 29 deletions(-) diff --git a/packages/federation-sdk/src/services/room.service.ts b/packages/federation-sdk/src/services/room.service.ts index 4f3673d05..95ffcdfb2 100644 --- a/packages/federation-sdk/src/services/room.service.ts +++ b/packages/federation-sdk/src/services/room.service.ts @@ -784,13 +784,14 @@ export class RoomService { // if local room, add the user to the room if allowed. // if remote room, run through the join process - async joinUser(roomId: RoomID, userId: UserID) { + async joinUser(invite: PersistentEventBase, userId: UserID) { const configService = this.configService; const stateService = this.stateService; const federationService = this.federationService; + const roomId = invite.roomId; // where the room is hosted at - const residentServer = extractDomainFromId(roomId); + const residentServer = extractDomainFromId(invite.sender); // our own room, we can validate the join event by ourselves // once done, emit the event to all participating servers diff --git a/packages/homeserver/src/controllers/internal/room.controller.ts b/packages/homeserver/src/controllers/internal/room.controller.ts index 52def1a64..1a4f14d78 100644 --- a/packages/homeserver/src/controllers/internal/room.controller.ts +++ b/packages/homeserver/src/controllers/internal/room.controller.ts @@ -168,33 +168,6 @@ export const internalRoomPlugin = (app: Elysia) => { }, }, ) - .put( - '/internal/rooms/:roomId/join/:userId', - async ({ params }) => { - const { roomId, userId } = params; - - const eventId = await roomService.joinUser( - roomId as RoomID, - userId as UserID, - ); - - return { - eventId, - }; - }, - { - // params: InternalJoinRoomParamsDto, - // response: { - // 200: InternalRoomEventResponseDto, - // 400: ErrorResponseDto, - // }, - detail: { - tags: ['Internal'], - summary: 'Join a room', - description: 'Join a room', - }, - }, - ) .get( '/internal/rooms/:roomId/state', async ({ params, query }) => {