@@ -150,26 +150,24 @@ export class InviteService {
150150 }
151151
152152 private async shouldProcessInvite (
153- event : PduForType < 'm.room.member' > ,
153+ strippedStateEvents : PduForType <
154+ | 'm.room.create'
155+ | 'm.room.name'
156+ | 'm.room.avatar'
157+ | 'm.room.topic'
158+ | 'm.room.join_rules'
159+ | 'm.room.canonical_alias'
160+ | 'm.room.encryption'
161+ > [ ] ,
154162 ) : Promise < void > {
155- const isRoomNonPrivate = event . unsigned . invite_room_state . some (
156- (
157- stateEvent : PersistentEventBase <
158- RoomVersion ,
159- 'm.room.join_rules'
160- > [ 'event' ] ,
161- ) =>
163+ const isRoomNonPrivate = strippedStateEvents . some (
164+ ( stateEvent ) =>
162165 stateEvent . type === 'm.room.join_rules' &&
163166 stateEvent . content . join_rule === 'public' ,
164167 ) ;
165168
166- const isRoomEncrypted = event . unsigned . invite_room_state . some (
167- (
168- stateEvent : PersistentEventBase <
169- RoomVersion ,
170- 'm.room.encryption'
171- > [ 'event' ] ,
172- ) => stateEvent . type === 'm.room.encryption' ,
169+ const isRoomEncrypted = strippedStateEvents . some (
170+ ( stateEvent ) => stateEvent . type === 'm.room.encryption' ,
173171 ) ;
174172
175173 const { allowedEncryptedRooms, allowedNonPrivateRooms } =
@@ -191,9 +189,18 @@ export class InviteService {
191189 eventId : EventID ,
192190 roomVersion : RoomVersion ,
193191 authenticatedServer : string ,
192+ strippedStateEvents : PduForType <
193+ | 'm.room.create'
194+ | 'm.room.name'
195+ | 'm.room.avatar'
196+ | 'm.room.topic'
197+ | 'm.room.join_rules'
198+ | 'm.room.canonical_alias'
199+ | 'm.room.encryption'
200+ > [ ] ,
194201 ) {
195202 // SPEC: when a user invites another user on a different homeserver, a request to that homeserver to have the event signed and verified must be made
196- await this . shouldProcessInvite ( event ) ;
203+ await this . shouldProcessInvite ( strippedStateEvents ) ;
197204
198205 const residentServer = roomId . split ( ':' ) . pop ( ) ;
199206 if ( ! residentServer ) {
0 commit comments