summary refs log tree commit diff
path: root/rust/src/push/evaluator.rs
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2022-09-07 17:17:24 +0100
committerErik Johnston <erik@matrix.org>2022-09-09 15:10:52 +0100
commitcdd83480dcaaeeb34a3302725a4c03e229afc390 (patch)
treee4f04ddd25383712f15c3491c469401e1c72cf33 /rust/src/push/evaluator.rs
parentRevert debug logging (diff)
downloadsynapse-github/erikj/rust_push_evaluator.tar.xz
Diffstat (limited to 'rust/src/push/evaluator.rs')
-rw-r--r--rust/src/push/evaluator.rs22
1 files changed, 13 insertions, 9 deletions
diff --git a/rust/src/push/evaluator.rs b/rust/src/push/evaluator.rs

index 95d847cac0..3e217ba706 100644 --- a/rust/src/push/evaluator.rs +++ b/rust/src/push/evaluator.rs
@@ -1,7 +1,7 @@ use std::collections::{BTreeMap, BTreeSet}; use anyhow::{Context, Error}; -use log::warn; +use log::{info, warn}; use pyo3::prelude::*; use super::{ @@ -14,10 +14,10 @@ pub struct PushRuleEvaluator { flattened_keys: BTreeMap<String, String>, body: String, room_member_count: u64, - power_levels: BTreeMap<String, BTreeMap<String, u64>>, + notification_power_levels: BTreeMap<String, i64>, relations: BTreeMap<String, BTreeSet<(String, String)>>, relation_match_enabled: bool, - sender_power_level: u64, + sender_power_level: i64, } #[pymethods] @@ -26,8 +26,8 @@ impl PushRuleEvaluator { fn py_new( flattened_keys: BTreeMap<String, String>, room_member_count: u64, - sender_power_level: u64, - power_levels: BTreeMap<String, BTreeMap<String, u64>>, + sender_power_level: i64, + notification_power_levels: BTreeMap<String, i64>, relations: BTreeMap<String, BTreeSet<(String, String)>>, relation_match_enabled: bool, ) -> Result<Self, Error> { @@ -40,7 +40,7 @@ impl PushRuleEvaluator { flattened_keys, body, room_member_count, - power_levels, + notification_power_levels, relations, relation_match_enabled, sender_power_level, @@ -111,12 +111,16 @@ impl PushRuleEvaluator { } Condition::SenderNotificationPermission { key } => { let required_level = self - .power_levels - .get("notifications") - .and_then(|m| m.get(key.as_ref())) + .notification_power_levels + .get(key.as_ref()) .copied() .unwrap_or(50); + info!( + "Power level {required_level} vs {}", + self.sender_power_level + ); + self.sender_power_level >= required_level } Condition::RelationMatch {