Skip to content

Commit b616983

Browse files
committed
remove uid from deleteMessage input and get it from message sender
1 parent 1552474 commit b616983

File tree

3 files changed

+6
-15
lines changed

3 files changed

+6
-15
lines changed

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

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { FederationMatrix } from '@rocket.chat/core-services';
2-
import { isEditedMessage, isUserNativeFederated, type IMessage, type IRoom, type IUser } from '@rocket.chat/core-typings';
2+
import { isEditedMessage, type IMessage, type IRoom, type IUser } from '@rocket.chat/core-typings';
33
import { Rooms } from '@rocket.chat/models';
44

55
import { callbacks } from '../../../../lib/callbacks';
@@ -57,22 +57,13 @@ callbacks.add(
5757

5858
callbacks.add(
5959
'afterDeleteMessage',
60-
async (message: IMessage, { room, user }) => {
60+
async (message: IMessage, { room }) => {
6161
if (!message.federation?.eventId) {
6262
return;
6363
}
6464

65-
// removing messages from external users is not allowed
66-
// TODO should we make it work for external users?
67-
if (user.federated) {
68-
return;
69-
}
70-
71-
if (!isUserNativeFederated(user)) {
72-
return;
73-
}
7465
if (FederationActions.shouldPerformFederationAction(room)) {
75-
await FederationMatrix.deleteMessage(room.federation.mrid, message, user.federation.mui);
66+
await FederationMatrix.deleteMessage(room.federation.mrid, message);
7667
}
7768
},
7869
callbacks.priority.MEDIUM,

ee/packages/federation-matrix/src/FederationMatrix.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS
616616
};
617617
}
618618

619-
async deleteMessage(matrixRoomId: string, message: IMessage, uid: string): Promise<void> {
619+
async deleteMessage(matrixRoomId: string, message: IMessage): Promise<void> {
620620
try {
621621
if (!isMessageFromMatrixFederation(message) || isDeletedMessage(message)) {
622622
return;
@@ -634,7 +634,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS
634634

635635
// TODO fix branded EventID and remove type casting
636636
// TODO message.u?.username is not the user who removed the message
637-
const eventId = await this.homeserverServices.message.redactMessage(matrixRoomId, matrixEventId as EventID, uid);
637+
const eventId = await this.homeserverServices.message.redactMessage(matrixRoomId, matrixEventId as EventID);
638638

639639
this.logger.debug('Message Redaction sent to Matrix successfully:', eventId);
640640
} catch (error) {

packages/core-services/src/types/IFederationMatrixService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export interface IFederationMatrixService {
1010
ensureFederatedUsersExistLocally(members: string[]): Promise<void>;
1111
createDirectMessageRoom(room: IRoomFederated, members: IUser[], creatorId: IUser['_id']): Promise<void>;
1212
sendMessage(message: IMessage, room: IRoomFederated, user: IUser): Promise<void>;
13-
deleteMessage(matrixRoomId: string, message: IMessage, uid: string): Promise<void>;
13+
deleteMessage(matrixRoomId: string, message: IMessage): Promise<void>;
1414
sendReaction(messageId: string, reaction: string, user: IUser): Promise<void>;
1515
removeReaction(messageId: string, reaction: string, user: IUser, oldMessage: IMessage): Promise<void>;
1616
getEventById(eventId: string): Promise<any | null>;

0 commit comments

Comments
 (0)