identifiers: Add MatrixVersionId::V10
According to MSC3604
This commit is contained in:
parent
478375f1f7
commit
3deae8eac7
@ -33,6 +33,7 @@ Improvements:
|
|||||||
* Move the `relations` field of `events::unsigned` types out of `unstable-msc2675`
|
* Move the `relations` field of `events::unsigned` types out of `unstable-msc2675`
|
||||||
* Deserialize stringified integers for power levels without the `compat` feature
|
* Deserialize stringified integers for power levels without the `compat` feature
|
||||||
* Add `JoinRule::KnockRestricted` (MSC3787)
|
* Add `JoinRule::KnockRestricted` (MSC3787)
|
||||||
|
* Add `MatrixVersionId::V10` (MSC3604)
|
||||||
|
|
||||||
# 0.9.2
|
# 0.9.2
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ impl RedactContent for RoomMemberEventContent {
|
|||||||
RedactedRoomMemberEventContent {
|
RedactedRoomMemberEventContent {
|
||||||
membership: self.membership,
|
membership: self.membership,
|
||||||
join_authorized_via_users_server: match _version {
|
join_authorized_via_users_server: match _version {
|
||||||
RoomVersionId::V9 => self.join_authorized_via_users_server,
|
RoomVersionId::V9 | RoomVersionId::V10 => self.join_authorized_via_users_server,
|
||||||
_ => None,
|
_ => None,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -53,6 +53,9 @@ pub enum RoomVersionId {
|
|||||||
/// A version 9 room.
|
/// A version 9 room.
|
||||||
V9,
|
V9,
|
||||||
|
|
||||||
|
/// A version 10 room.
|
||||||
|
V10,
|
||||||
|
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
_Custom(CustomRoomVersion),
|
_Custom(CustomRoomVersion),
|
||||||
}
|
}
|
||||||
@ -72,6 +75,7 @@ impl RoomVersionId {
|
|||||||
Self::V7 => "7",
|
Self::V7 => "7",
|
||||||
Self::V8 => "8",
|
Self::V8 => "8",
|
||||||
Self::V9 => "9",
|
Self::V9 => "9",
|
||||||
|
Self::V10 => "10",
|
||||||
Self::_Custom(version) => version.as_str(),
|
Self::_Custom(version) => version.as_str(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -94,6 +98,7 @@ impl From<RoomVersionId> for String {
|
|||||||
RoomVersionId::V7 => "7".to_owned(),
|
RoomVersionId::V7 => "7".to_owned(),
|
||||||
RoomVersionId::V8 => "8".to_owned(),
|
RoomVersionId::V8 => "8".to_owned(),
|
||||||
RoomVersionId::V9 => "9".to_owned(),
|
RoomVersionId::V9 => "9".to_owned(),
|
||||||
|
RoomVersionId::V10 => "10".to_owned(),
|
||||||
RoomVersionId::_Custom(version) => version.into(),
|
RoomVersionId::_Custom(version) => version.into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -160,6 +165,7 @@ where
|
|||||||
"7" => RoomVersionId::V7,
|
"7" => RoomVersionId::V7,
|
||||||
"8" => RoomVersionId::V8,
|
"8" => RoomVersionId::V8,
|
||||||
"9" => RoomVersionId::V9,
|
"9" => RoomVersionId::V9,
|
||||||
|
"10" => RoomVersionId::V10,
|
||||||
custom => {
|
custom => {
|
||||||
ruma_identifiers_validation::room_version_id::validate(custom)?;
|
ruma_identifiers_validation::room_version_id::validate(custom)?;
|
||||||
RoomVersionId::_Custom(CustomRoomVersion(room_version_id.into()))
|
RoomVersionId::_Custom(CustomRoomVersion(room_version_id.into()))
|
||||||
|
@ -45,12 +45,14 @@ static ALLOWED_KEYS: &[&str] = &[
|
|||||||
fn allowed_content_keys_for(event_type: &str, version: &RoomVersionId) -> &'static [&'static str] {
|
fn allowed_content_keys_for(event_type: &str, version: &RoomVersionId) -> &'static [&'static str] {
|
||||||
match event_type {
|
match event_type {
|
||||||
"m.room.member" => match version {
|
"m.room.member" => match version {
|
||||||
RoomVersionId::V9 => &["membership", "join_authorised_via_users_server"],
|
RoomVersionId::V9 | RoomVersionId::V10 => {
|
||||||
|
&["membership", "join_authorised_via_users_server"]
|
||||||
|
}
|
||||||
_ => &["membership"],
|
_ => &["membership"],
|
||||||
},
|
},
|
||||||
"m.room.create" => &["creator"],
|
"m.room.create" => &["creator"],
|
||||||
"m.room.join_rules" => match version {
|
"m.room.join_rules" => match version {
|
||||||
RoomVersionId::V8 | RoomVersionId::V9 => &["join_rule", "allow"],
|
RoomVersionId::V8 | RoomVersionId::V9 | RoomVersionId::V10 => &["join_rule", "allow"],
|
||||||
_ => &["join_rule"],
|
_ => &["join_rule"],
|
||||||
},
|
},
|
||||||
"m.room.power_levels" => &[
|
"m.room.power_levels" => &[
|
||||||
@ -844,7 +846,7 @@ fn servers_to_check_signatures(
|
|||||||
| RoomVersionId::V6
|
| RoomVersionId::V6
|
||||||
| RoomVersionId::V7 => {}
|
| RoomVersionId::V7 => {}
|
||||||
// TODO: And for all future versions that have join_authorised_via_users_server
|
// TODO: And for all future versions that have join_authorised_via_users_server
|
||||||
RoomVersionId::V8 | RoomVersionId::V9 => {
|
RoomVersionId::V8 | RoomVersionId::V9 | RoomVersionId::V10 => {
|
||||||
if let Some(authorized_user) = object
|
if let Some(authorized_user) = object
|
||||||
.get("content")
|
.get("content")
|
||||||
.and_then(|c| c.as_object())
|
.and_then(|c| c.as_object())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user