mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-09-09 13:31:55 +00:00
Check third party rules before persisting knocks over federation (#10212)
An accidental mis-ordering of operations during #6739 technically allowed an incoming knock event over federation in before checking it against any configured Third Party Access Rules modules. This PR corrects that by performing the TPAR check *before* persisting the event.
This commit is contained in:
parent
107c06081f
commit
182147195b
1
changelog.d/10212.feature
Normal file
1
changelog.d/10212.feature
Normal file
@ -0,0 +1 @@
|
|||||||
|
Implement "room knocking" as per [MSC2403](https://github.com/matrix-org/matrix-doc/pull/2403). Contributed by Sorunome and anoa.
|
@ -2086,8 +2086,6 @@ class FederationHandler(BaseHandler):
|
|||||||
|
|
||||||
context = await self.state_handler.compute_event_context(event)
|
context = await self.state_handler.compute_event_context(event)
|
||||||
|
|
||||||
await self._auth_and_persist_event(origin, event, context)
|
|
||||||
|
|
||||||
event_allowed = await self.third_party_event_rules.check_event_allowed(
|
event_allowed = await self.third_party_event_rules.check_event_allowed(
|
||||||
event, context
|
event, context
|
||||||
)
|
)
|
||||||
@ -2097,6 +2095,8 @@ class FederationHandler(BaseHandler):
|
|||||||
403, "This event is not allowed in this context", Codes.FORBIDDEN
|
403, "This event is not allowed in this context", Codes.FORBIDDEN
|
||||||
)
|
)
|
||||||
|
|
||||||
|
await self._auth_and_persist_event(origin, event, context)
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
async def get_state_for_pdu(self, room_id: str, event_id: str) -> List[EventBase]:
|
async def get_state_for_pdu(self, room_id: str, event_id: str) -> List[EventBase]:
|
||||||
|
Loading…
Reference in New Issue
Block a user