Skip to content

Commit b3fd9fb

Browse files
committed
fix: Changes because of conflict resolution because of a refactor
1 parent b55311a commit b3fd9fb

File tree

1 file changed

+8
-45
lines changed

1 file changed

+8
-45
lines changed

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

Lines changed: 8 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@ import { notifyOnRoomChangedById, notifyOnSubscriptionChanged } from '../lib/not
1515
* Executes only the necessary database operations, with no callbacks, to prevent
1616
* propagation loops during external event processing.
1717
*/
18-
export const performUserRemoval = async function (room: IRoom, user: IUser, options?: { byUser?: IUser }): Promise<void> {
18+
export const performUserRemoval = async function (
19+
room: IRoom,
20+
user: IUser,
21+
options?: { byUser?: IUser; skipAppPreEvents?: boolean; customSystemMessage?: MessageTypesValues },
22+
): Promise<void> {
1923
const subscription = await Subscriptions.findOneByRoomIdAndUserId(room._id, user._id, {
2024
projection: { _id: 1, status: 1 },
2125
});
@@ -28,7 +32,9 @@ export const performUserRemoval = async function (room: IRoom, user: IUser, opti
2832

2933
if (subscription) {
3034
const removedUser = user;
31-
if (options?.byUser) {
35+
if (options?.customSystemMessage) {
36+
await Message.saveSystemMessage(options?.customSystemMessage, room._id, user.username || '', user);
37+
} else if (options?.byUser) {
3238
const extraData = {
3339
u: options.byUser,
3440
};
@@ -99,49 +105,6 @@ export const removeUserFromRoom = async function (
99105

100106
await performUserRemoval(room, user, options);
101107

102-
const subscription = await Subscriptions.findOneByRoomIdAndUserId(rid, user._id, {
103-
projection: { _id: 1 },
104-
});
105-
106-
if (subscription) {
107-
const removedUser = user;
108-
if (options?.customSystemMessage) {
109-
await Message.saveSystemMessage(options?.customSystemMessage, rid, user.username || '', user);
110-
} else if (options?.byUser) {
111-
const extraData = {
112-
u: options.byUser,
113-
};
114-
115-
if (room.teamMain) {
116-
await Message.saveSystemMessage('removed-user-from-team', rid, user.username || '', user, extraData);
117-
} else {
118-
await Message.saveSystemMessage('ru', rid, user.username || '', user, extraData);
119-
}
120-
} else if (room.teamMain) {
121-
await Message.saveSystemMessage('ult', rid, removedUser.username || '', removedUser);
122-
} else {
123-
await Message.saveSystemMessage('ul', rid, removedUser.username || '', removedUser);
124-
}
125-
}
126-
127-
if (room.t === 'l') {
128-
await Message.saveSystemMessage('command', rid, 'survey', user);
129-
}
130-
131-
const deletedSubscription = await Subscriptions.removeByRoomIdAndUserId(rid, user._id);
132-
if (deletedSubscription) {
133-
void notifyOnSubscriptionChanged(deletedSubscription, 'removed');
134-
}
135-
136-
if (room.teamId && room.teamMain) {
137-
await Team.removeMember(room.teamId, user._id);
138-
}
139-
140-
if (room.encrypted && settings.get('E2E_Enable')) {
141-
await Rooms.removeUsersFromE2EEQueueByRoomId(room._id, [user._id]);
142-
}
143-
144-
// TODO: CACHE: maybe a queue?
145108
await afterLeaveRoomCallback.run({ user, kicker: options?.byUser }, room);
146109

147110
await Apps.self?.triggerEvent(AppEvents.IPostRoomUserLeave, room, user, options?.byUser);

0 commit comments

Comments
 (0)