File tree Expand file tree Collapse file tree 3 files changed +7
-9
lines changed
ee/server/hooks/federation Expand file tree Collapse file tree 3 files changed +7
-9
lines changed Original file line number Diff line number Diff line change @@ -252,18 +252,16 @@ callbacks.add(
252252 'federation-matrix-before-create-direct-room' ,
253253) ;
254254
255- callbacks . add ( 'federation.beforeCreateDirectMessage' , async ( roomUsers ) => {
255+ callbacks . add ( 'federation.beforeCreateDirectMessage' , async ( roomUsers , extraData ) => {
256256 // TODO: use a shared helper to check whether a user is federated
257257 // since the DM creation API doesn't tell us if the room is federated (unlike normal channels),
258258 // we're currently inferring it: if any participant has a Matrix-style ID (@user:server), we treat the DM as federated
259259 const hasFederatedMembers = roomUsers . some ( ( user : unknown ) => typeof user === 'string' && user . includes ( ':' ) && user . includes ( '@' ) ) ;
260260
261261 if ( hasFederatedMembers ) {
262- return {
263- federated : true ,
264- federation : {
265- version : 1 ,
266- } ,
262+ extraData . federated = true ;
263+ extraData . federation = {
264+ version : 1 ,
267265 } ;
268266 }
269267} ) ;
Original file line number Diff line number Diff line change @@ -78,7 +78,7 @@ interface EventLikeCallbackSignatures {
7878 } ,
7979 ) => void ;
8080 'beforeCreateDirectRoom' : ( members : string [ ] , room : IRoom ) => void ;
81- 'federation.beforeCreateDirectMessage' : ( members : IUser [ ] ) => void ;
81+ 'federation.beforeCreateDirectMessage' : ( members : IUser [ ] , extraData : Record < string , unknown > ) => void ;
8282 'afterSetReaction' : ( message : IMessage , params : { user : IUser ; reaction : string ; shouldReact : boolean ; room : IRoom } ) => void ;
8383 'afterUnsetReaction' : (
8484 message : IMessage ,
Original file line number Diff line number Diff line change @@ -74,10 +74,10 @@ export async function createDirectMessage(
7474 options . subscriptionExtra = { open : true } ;
7575 }
7676
77- let extraData = { } ;
77+ const extraData = { } ;
7878
7979 try {
80- extraData = await callbacks . run ( 'federation.beforeCreateDirectMessage' , roomUsers ) ;
80+ await callbacks . run ( 'federation.beforeCreateDirectMessage' , roomUsers , extraData ) ;
8181 } catch ( error ) {
8282 throw new Meteor . Error ( ( error as any ) ?. message ) ;
8383 }
You can’t perform that action at this time.
0 commit comments