fix: event required power levels
This commit is contained in:
parent
d34a78c5b6
commit
da5c74acc3
@ -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.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user