Skip to content

Commit ce2a254

Browse files
committed
fix: dm
1 parent 3b60f94 commit ce2a254

File tree

5 files changed

+17
-15
lines changed

5 files changed

+17
-15
lines changed

apps/meteor/app/discussion/server/hooks/propagateDiscussionMetadata.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ callbacks.add(
4848

4949
callbacks.add(
5050
'afterDeleteMessage',
51-
async (message, { _id, prid }) => {
51+
async (message, { room: { _id, prid } }) => {
5252
if (prid) {
5353
const room = await Rooms.findOneById(_id, {
5454
projection: {

apps/meteor/app/lib/server/functions/createDirectRoom.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export async function createDirectRoom(
4646
options: {
4747
creator?: string;
4848
subscriptionExtra?: ISubscriptionExtraData;
49+
federatedRoomId?: string;
4950
},
5051
): Promise<ICreatedRoom> {
5152
const maxUsers = settings.get<number>('DirectMesssage_maxUsers') || 1;
@@ -179,7 +180,11 @@ export async function createDirectRoom(
179180
if (isNewRoom) {
180181
const insertedRoom = await Rooms.findOneById(rid);
181182

182-
await callbacks.run('afterCreateDirectRoom', insertedRoom, { members: roomMembers, creatorId: options?.creator });
183+
await callbacks.run('afterCreateDirectRoom', insertedRoom, {
184+
members: roomMembers,
185+
creatorId: options?.creator,
186+
mrid: options?.federatedRoomId,
187+
});
183188

184189
void Apps.self?.triggerEvent(AppEvents.IPostRoomCreate, insertedRoom);
185190
}

apps/meteor/app/lib/server/methods/sendMessage.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,7 @@ export async function executeSendMessage(uid: IUser['_id'], message: AtLeast<IMe
5555
}
5656
}
5757

58-
const user = await Users.findOneById(uid, {
59-
projection: {
60-
username: 1,
61-
type: 1,
62-
name: 1,
63-
},
64-
});
58+
const user = await Users.findOneById(uid);
6559
if (!user?.username) {
6660
throw new Meteor.Error('error-invalid-user', 'Invalid user');
6761
}

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

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ callbacks.add(
3838
return;
3939
}
4040

41-
if (!isUserNativeFederated(user)) {
42-
return;
43-
}
44-
4541
try {
4642
// TODO: Check if message already exists in the database, if it does, don't send it to the federation to avoid loops
4743
// If message is federated, it will save external_message_id like into the message object
@@ -221,7 +217,14 @@ callbacks.add(
221217

222218
callbacks.add(
223219
'afterCreateDirectRoom',
224-
async (room: IRoom, params: { members: IUser[]; creatorId: IUser['_id'] }): Promise<void> => {
220+
async (room: IRoom, params: { members: IUser[]; creatorId: IUser['_id']; mrid?: string }): Promise<void> => {
221+
if (params.mrid) {
222+
await Rooms.setAsFederated(room._id, {
223+
mrid: params.mrid,
224+
origin: params.mrid.split(':').pop()!,
225+
});
226+
return;
227+
}
225228
if (FederationActions.shouldPerformFederationAction(room)) {
226229
await FederationMatrix.createDirectMessageRoom(room, params.members, params.creatorId);
227230
}

apps/meteor/lib/callbacks.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ interface EventLikeCallbackSignatures {
6464
user: AtLeast<IUser, '_id' | 'federated' | 'roles'>;
6565
inviter: AtLeast<IUser, '_id' | 'username'>;
6666
}) => void;
67-
'afterCreateDirectRoom': (params: IRoom, second: { members: IUser[]; creatorId: IUser['_id'] }) => void;
67+
'afterCreateDirectRoom': (params: IRoom, second: { members: IUser[]; creatorId: IUser['_id']; mrid?: string }) => void;
6868
'beforeDeleteRoom': (params: IRoom) => void;
6969
'beforeJoinDefaultChannels': (user: IUser) => void;
7070
'beforeCreateChannel': (owner: IUser, room: IRoom) => void;

0 commit comments

Comments
 (0)