Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/meteor/app/lib/server/functions/deleteMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export async function deleteMessage(message: IMessage, user: IUser): Promise<voi
const showDeletedStatus = settings.get('Message_ShowDeletedStatus') || isThread;
const bridges = Apps.self?.isLoaded() && Apps.getBridges();

const room = await Rooms.findOneById(message.rid, { projection: { lastMessage: 1, prid: 1, mid: 1, federated: 1 } });
const room = await Rooms.findOneById(message.rid, { projection: { lastMessage: 1, prid: 1, mid: 1, federated: 1, federation: 1 } });

if (deletedMsg) {
if (bridges) {
Expand Down
15 changes: 3 additions & 12 deletions apps/meteor/ee/server/hooks/federation/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { FederationMatrix } from '@rocket.chat/core-services';
import { isEditedMessage, isUserNativeFederated, type IMessage, type IRoom, type IUser } from '@rocket.chat/core-typings';
import { isEditedMessage, type IMessage, type IRoom, type IUser } from '@rocket.chat/core-typings';
import { Rooms } from '@rocket.chat/models';

import { callbacks } from '../../../../lib/callbacks';
Expand Down Expand Up @@ -57,22 +57,13 @@ callbacks.add(

callbacks.add(
'afterDeleteMessage',
async (message: IMessage, { room, user }) => {
async (message: IMessage, { room }) => {
if (!message.federation?.eventId) {
return;
}

// removing messages from external users is not allowed
// TODO should we make it work for external users?
if (user.federated) {
return;
}

if (!isUserNativeFederated(user)) {
return;
}
if (FederationActions.shouldPerformFederationAction(room)) {
await FederationMatrix.deleteMessage(room.federation.mrid, message, user.federation.mui);
await FederationMatrix.deleteMessage(room.federation.mrid, message);
}
},
callbacks.priority.MEDIUM,
Expand Down
2 changes: 1 addition & 1 deletion ee/apps/federation-service/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
"@rocket.chat/core-typings": "workspace:*",
"@rocket.chat/emitter": "^0.31.25",
"@rocket.chat/federation-matrix": "workspace:^",
"@rocket.chat/federation-sdk": "0.1.11",
"@rocket.chat/federation-sdk": "0.1.13",
"@rocket.chat/http-router": "workspace:*",
"@rocket.chat/instance-status": "workspace:^",
"@rocket.chat/license": "workspace:^",
Expand Down
2 changes: 1 addition & 1 deletion ee/packages/federation-matrix/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"@rocket.chat/core-services": "workspace:^",
"@rocket.chat/core-typings": "workspace:^",
"@rocket.chat/emitter": "^0.31.25",
"@rocket.chat/federation-sdk": "0.1.11",
"@rocket.chat/federation-sdk": "0.1.13",
"@rocket.chat/http-router": "workspace:^",
"@rocket.chat/license": "workspace:^",
"@rocket.chat/models": "workspace:^",
Expand Down
4 changes: 2 additions & 2 deletions ee/packages/federation-matrix/src/FederationMatrix.ts
Original file line number Diff line number Diff line change
Expand Up @@ -616,7 +616,7 @@ export class FederationMatrix extends ServiceClass implements IFederationMatrixS
};
}

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

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

this.logger.debug('Message Redaction sent to Matrix successfully:', eventId);
} catch (error) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export interface IFederationMatrixService {
ensureFederatedUsersExistLocally(members: string[]): Promise<void>;
createDirectMessageRoom(room: IRoomFederated, members: IUser[], creatorId: IUser['_id']): Promise<void>;
sendMessage(message: IMessage, room: IRoomFederated, user: IUser): Promise<void>;
deleteMessage(matrixRoomId: string, message: IMessage, uid: string): Promise<void>;
deleteMessage(matrixRoomId: string, message: IMessage): Promise<void>;
sendReaction(messageId: string, reaction: string, user: IUser): Promise<void>;
removeReaction(messageId: string, reaction: string, user: IUser, oldMessage: IMessage): Promise<void>;
getEventById(eventId: string): Promise<any | null>;
Expand Down
14 changes: 7 additions & 7 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7543,7 +7543,7 @@ __metadata:
"@rocket.chat/core-typings": "workspace:^"
"@rocket.chat/emitter": "npm:^0.31.25"
"@rocket.chat/eslint-config": "workspace:^"
"@rocket.chat/federation-sdk": "npm:0.1.11"
"@rocket.chat/federation-sdk": "npm:0.1.13"
"@rocket.chat/http-router": "workspace:^"
"@rocket.chat/license": "workspace:^"
"@rocket.chat/models": "workspace:^"
Expand All @@ -7569,9 +7569,9 @@ __metadata:
languageName: unknown
linkType: soft

"@rocket.chat/federation-sdk@npm:0.1.11":
version: 0.1.11
resolution: "@rocket.chat/federation-sdk@npm:0.1.11"
"@rocket.chat/federation-sdk@npm:0.1.13":
version: 0.1.13
resolution: "@rocket.chat/federation-sdk@npm:0.1.13"
dependencies:
"@datastructures-js/priority-queue": "npm:^6.3.3"
"@noble/ed25519": "npm:^3.0.0"
Expand All @@ -7584,7 +7584,7 @@ __metadata:
zod: "npm:^3.22.4"
peerDependencies:
typescript: ~5.9.2
checksum: 10/f45d1d43e28033e3b20022cedbd5825967bbf85346cebc2d6600d490f306fd253713a95bc51ce571e90027087d96497349c694e72a2c2913319d08e1046b0c06
checksum: 10/05109707f0f17f8b9b3e93298dbf9083dc2c9250a8d4b8efc2bb4305d1a086717e07553485df27c5c7d8222f2f706bf0d91c97ac3b5df219883d4f43e6813dd4
languageName: node
linkType: hard

Expand All @@ -7597,7 +7597,7 @@ __metadata:
"@rocket.chat/core-typings": "workspace:*"
"@rocket.chat/emitter": "npm:^0.31.25"
"@rocket.chat/federation-matrix": "workspace:^"
"@rocket.chat/federation-sdk": "npm:0.1.11"
"@rocket.chat/federation-sdk": "npm:0.1.13"
"@rocket.chat/http-router": "workspace:*"
"@rocket.chat/instance-status": "workspace:^"
"@rocket.chat/license": "workspace:^"
Expand Down Expand Up @@ -9783,7 +9783,7 @@ __metadata:
peerDependencies:
"@rocket.chat/layout": "*"
"@rocket.chat/tools": 0.2.3
"@rocket.chat/ui-contexts": 23.0.0-rc.0
"@rocket.chat/ui-contexts": 23.0.0-rc.1
"@tanstack/react-query": "*"
react: "*"
react-hook-form: "*"
Expand Down
Loading