state-res: Add m.federate
to the authorization rules
This commit is contained in:
parent
cac7e09429
commit
324c8b09e0
@ -1,5 +1,10 @@
|
|||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
Improvements:
|
||||||
|
|
||||||
|
* Add `m.federate` to `auth_check`:
|
||||||
|
<https://github.com/matrix-org/matrix-spec/pull/1103>
|
||||||
|
|
||||||
# 0.7.0
|
# 0.7.0
|
||||||
|
|
||||||
Breaking changes:
|
Breaking changes:
|
||||||
|
@ -223,7 +223,21 @@ pub fn auth_check<E: Event>(
|
|||||||
return Ok(false);
|
return Ok(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// [synapse] checks for federation here
|
// If the create event content has the field m.federate set to false and the sender domain of
|
||||||
|
// the event does not match the sender domain of the create event, reject.
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
struct RoomCreateContentFederate {
|
||||||
|
#[serde(rename = "m.federate", default = "ruma_common::serde::default_true")]
|
||||||
|
federate: bool,
|
||||||
|
}
|
||||||
|
let room_create_content: RoomCreateContentFederate =
|
||||||
|
from_json_str(room_create_event.content().get())?;
|
||||||
|
if !room_create_content.federate
|
||||||
|
&& room_create_event.sender().server_name() != incoming_event.sender().server_name()
|
||||||
|
{
|
||||||
|
warn!("room is not federated and event's sender domain does not match create event's sender domain");
|
||||||
|
return Ok(false);
|
||||||
|
}
|
||||||
|
|
||||||
// Only in some room versions 6 and below
|
// Only in some room versions 6 and below
|
||||||
if room_version.special_case_aliases_auth {
|
if room_version.special_case_aliases_auth {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user