fix: event required power levels

This commit is contained in:
Timo Kösters 2021-03-18 18:38:40 +01:00 committed by Devin Ragotzy
parent d34a78c5b6
commit da5c74acc3

View File

@ -747,28 +747,21 @@ pub fn get_send_level<E: Event>(
power_lvl: Option<&Arc<E>>, power_lvl: Option<&Arc<E>>,
) -> i64 { ) -> i64 {
log::debug!("{:?} {:?}", e_type, state_key); log::debug!("{:?} {:?}", e_type, state_key);
if let Some(ple) = power_lvl { power_lvl
if let Ok(content) = .and_then(|ple| {
serde_json::from_value::<room::power_levels::PowerLevelsEventContent>(ple.content()) serde_json::from_value::<room::power_levels::PowerLevelsEventContent>(ple.content())
{ .map(|content| {
let mut lvl: i64 = content content.events.get(&e_type).cloned().unwrap_or_else(|| {
.events if state_key.is_some() {
.get(&e_type) content.state_default
.cloned() } else {
.unwrap_or_else(|| ruma::int!(50)) content.events_default
.into(); }
let state_def: i64 = content.state_default.into(); })
let event_def: i64 = content.events_default.into(); }).ok()
if (state_key.is_some() && state_def > lvl) || event_def > lvl { })
lvl = event_def; .map(|int| i64::from(int))
} .unwrap_or_else(|| if state_key.is_some() { 50 } else { 0 })
lvl
} else {
50 // default power level
}
} else {
0
}
} }
/// Check user can send invite. /// Check user can send invite.