The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/app/federation/server/hooks/afterUnmuteUser.js

29 lines
1.1 KiB

import { FederationRoomEvents } from '../../../models/server';
import { logger } from '../lib/logger';
import { normalizers } from '../normalizers';
import { hasExternalDomain } from '../functions/helpers';
import { getFederationDomain } from '../lib/getFederationDomain';
import { dispatchEvent } from '../handler';
async function afterUnmuteUser(involvedUsers, room) {
// If there are not federated users on this room, ignore it
if (!hasExternalDomain(room)) { return involvedUsers; }
logger.client.debug(() => `afterUnmuteUser => involvedUsers=${ JSON.stringify(involvedUsers, null, 2) } room=${ JSON.stringify(room, null, 2) }`);
const { unmutedUser } = involvedUsers;
// Create the mute user event
const event = await FederationRoomEvents.createUnmuteUserEvent(getFederationDomain(), room._id, normalizers.normalizeUser(unmutedUser));
// Dispatch event (async)
dispatchEvent(room.federation.domains, event);
return involvedUsers;
}
export const definition = {
hook: 'afterUnmuteUser',
callback: (involvedUsers, room) => Promise.await(afterUnmuteUser(involvedUsers, room)),
id: 'federation-after-unmute-user',
};