Add support for suppress edits push rule

According to MSC3958
This commit is contained in:
Kévin Commaille 2023-09-13 20:02:59 +02:00 committed by Kévin Commaille
parent 369cf8629e
commit 31ae99cf52
4 changed files with 28 additions and 0 deletions

View File

@ -27,6 +27,7 @@ Improvements:
- Add `MatrixVersion::V1_7` and `MatrixVersion::V1_8`
- Add support for room version 11 according to MSC3820 / Matrix 1.8
- Adapt the redaction algorithm in `canonical_json`
- Add unstable support for suppress edits push rule (MSC3958)
# 0.11.3

View File

@ -30,6 +30,7 @@ unstable-msc2870 = []
unstable-msc3381 = []
unstable-msc3931 = []
unstable-msc3932 = ["unstable-msc3931"]
unstable-msc3958 = []
unstable-unspecified = []
# Don't validate the version part in `KeyId`.

View File

@ -40,6 +40,8 @@ impl Ruleset {
ConditionalPushRule::tombstone(),
ConditionalPushRule::reaction(),
ConditionalPushRule::server_acl(),
#[cfg(feature = "unstable-msc3958")]
ConditionalPushRule::suppress_edits(),
]
.into(),
underride: [
@ -306,6 +308,23 @@ impl ConditionalPushRule {
],
}
}
/// Matches [event replacements].
///
/// [event replacements]: https://spec.matrix.org/latest/client-server-api/#event-replacements
#[cfg(feature = "unstable-msc3958")]
pub fn suppress_edits() -> Self {
Self {
actions: vec![],
default: true,
enabled: true,
rule_id: PredefinedOverrideRuleId::SuppressEdits.to_string(),
conditions: vec![EventPropertyIs {
key: r"content.m\.relates_to.rel_type".to_owned(),
value: "m.replace".into(),
}],
}
}
}
/// Default content push rules
@ -535,6 +554,11 @@ pub enum PredefinedOverrideRuleId {
#[ruma_enum(rename = ".m.rule.room.server_acl")]
RoomServerAcl,
/// `.m.rule.suppress_edits`
#[cfg(feature = "unstable-msc3958")]
#[ruma_enum(rename = ".org.matrix.msc3958.suppress_edits")]
SuppressEdits,
#[doc(hidden)]
_Custom(PrivOwnedStr),
}

View File

@ -199,6 +199,7 @@ unstable-msc3932 = ["ruma-common/unstable-msc3932"]
unstable-msc3954 = ["ruma-events?/unstable-msc3954"]
unstable-msc3955 = ["ruma-events?/unstable-msc3955"]
unstable-msc3956 = ["ruma-events?/unstable-msc3956"]
unstable-msc3958 = ["ruma-common/unstable-msc3958"]
unstable-pdu = ["ruma-events?/unstable-pdu"]
unstable-unspecified = [
"ruma-common/unstable-unspecified",
@ -239,6 +240,7 @@ __ci = [
"unstable-msc3954",
"unstable-msc3955",
"unstable-msc3956",
"unstable-msc3958",
]
[dependencies]