mirror of
				https://github.com/element-hq/synapse.git
				synced 2025-11-04 00:01:22 -05:00 
			
		
		
		
	Disable pushing for server ACL events (MSC3786). (#13997)
Switches to the stable identifier for MSC3786 and enables it by default. This disables pushes of m.room.server_acl events.
This commit is contained in:
		
							parent
							
								
									27fa0fa698
								
							
						
					
					
						commit
						e70c6b720e
					
				
							
								
								
									
										1
									
								
								changelog.d/13997.feature
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								changelog.d/13997.feature
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
			
		||||
Ignore server ACL changes when generating pushes. Implement [MSC3786](https://github.com/matrix-org/matrix-spec-proposals/pull/3786).
 | 
			
		||||
@ -173,7 +173,7 @@ pub const BASE_APPEND_OVERRIDE_RULES: &[PushRule] = &[
 | 
			
		||||
        default_enabled: true,
 | 
			
		||||
    },
 | 
			
		||||
    PushRule {
 | 
			
		||||
        rule_id: Cow::Borrowed("global/override/.org.matrix.msc3786.rule.room.server_acl"),
 | 
			
		||||
        rule_id: Cow::Borrowed("global/override/.m.rule.room.server_acl"),
 | 
			
		||||
        priority_class: 5,
 | 
			
		||||
        conditions: Cow::Borrowed(&[
 | 
			
		||||
            Condition::Known(KnownCondition::EventMatch(EventMatchCondition {
 | 
			
		||||
 | 
			
		||||
@ -401,7 +401,6 @@ impl PushRules {
 | 
			
		||||
pub struct FilteredPushRules {
 | 
			
		||||
    push_rules: PushRules,
 | 
			
		||||
    enabled_map: BTreeMap<String, bool>,
 | 
			
		||||
    msc3786_enabled: bool,
 | 
			
		||||
    msc3772_enabled: bool,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -411,13 +410,11 @@ impl FilteredPushRules {
 | 
			
		||||
    pub fn py_new(
 | 
			
		||||
        push_rules: PushRules,
 | 
			
		||||
        enabled_map: BTreeMap<String, bool>,
 | 
			
		||||
        msc3786_enabled: bool,
 | 
			
		||||
        msc3772_enabled: bool,
 | 
			
		||||
    ) -> Self {
 | 
			
		||||
        Self {
 | 
			
		||||
            push_rules,
 | 
			
		||||
            enabled_map,
 | 
			
		||||
            msc3786_enabled,
 | 
			
		||||
            msc3772_enabled,
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
@ -437,12 +434,6 @@ impl FilteredPushRules {
 | 
			
		||||
            .iter()
 | 
			
		||||
            .filter(|rule| {
 | 
			
		||||
                // Ignore disabled experimental push rules
 | 
			
		||||
                if !self.msc3786_enabled
 | 
			
		||||
                    && rule.rule_id == "global/override/.org.matrix.msc3786.rule.room.server_acl"
 | 
			
		||||
                {
 | 
			
		||||
                    return false;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if !self.msc3772_enabled
 | 
			
		||||
                    && rule.rule_id == "global/underride/.org.matrix.msc3772.thread_reply"
 | 
			
		||||
                {
 | 
			
		||||
 | 
			
		||||
@ -26,11 +26,7 @@ class PushRules:
 | 
			
		||||
 | 
			
		||||
class FilteredPushRules:
 | 
			
		||||
    def __init__(
 | 
			
		||||
        self,
 | 
			
		||||
        push_rules: PushRules,
 | 
			
		||||
        enabled_map: Dict[str, bool],
 | 
			
		||||
        msc3786_enabled: bool,
 | 
			
		||||
        msc3772_enabled: bool,
 | 
			
		||||
        self, push_rules: PushRules, enabled_map: Dict[str, bool], msc3772_enabled: bool
 | 
			
		||||
    ): ...
 | 
			
		||||
    def rules(self) -> Collection[Tuple[PushRule, bool]]: ...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -95,9 +95,6 @@ class ExperimentalConfig(Config):
 | 
			
		||||
        # MSC2815 (allow room moderators to view redacted event content)
 | 
			
		||||
        self.msc2815_enabled: bool = experimental.get("msc2815_enabled", False)
 | 
			
		||||
 | 
			
		||||
        # MSC3786 (Add a default push rule to ignore m.room.server_acl events)
 | 
			
		||||
        self.msc3786_enabled: bool = experimental.get("msc3786_enabled", False)
 | 
			
		||||
 | 
			
		||||
        # MSC3771: Thread read receipts
 | 
			
		||||
        self.msc3771_enabled: bool = experimental.get("msc3771_enabled", False)
 | 
			
		||||
        # MSC3772: A push rule for mutual relations.
 | 
			
		||||
 | 
			
		||||
@ -81,15 +81,10 @@ def _load_rules(
 | 
			
		||||
        for rawrule in rawrules
 | 
			
		||||
    ]
 | 
			
		||||
 | 
			
		||||
    push_rules = PushRules(
 | 
			
		||||
        ruleslist,
 | 
			
		||||
    )
 | 
			
		||||
    push_rules = PushRules(ruleslist)
 | 
			
		||||
 | 
			
		||||
    filtered_rules = FilteredPushRules(
 | 
			
		||||
        push_rules,
 | 
			
		||||
        enabled_map,
 | 
			
		||||
        msc3786_enabled=experimental_config.msc3786_enabled,
 | 
			
		||||
        msc3772_enabled=experimental_config.msc3772_enabled,
 | 
			
		||||
        push_rules, enabled_map, msc3772_enabled=experimental_config.msc3772_enabled
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    return filtered_rules
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user