state-res: Replace map_or_else with simpler alternatives
This commit is contained in:
parent
4d0064330a
commit
d8637d3b30
@ -289,14 +289,12 @@ where
|
|||||||
// Allow if and only if sender's current power level is greater than
|
// Allow if and only if sender's current power level is greater than
|
||||||
// or equal to the invite level
|
// or equal to the invite level
|
||||||
if incoming_event.event_type() == EventType::RoomThirdPartyInvite {
|
if incoming_event.event_type() == EventType::RoomThirdPartyInvite {
|
||||||
let invite_level = power_levels_event.as_ref().map_or_else(
|
let invite_level = match &power_levels_event {
|
||||||
|| Ok::<_, Error>(int!(50)),
|
Some(power_levels) => {
|
||||||
|power_levels| {
|
serde_json::from_value::<PowerLevelsEventContent>(power_levels.content())?.invite
|
||||||
serde_json::from_value::<PowerLevelsEventContent>(power_levels.content())
|
}
|
||||||
.map(|pl| pl.invite)
|
None => int!(50),
|
||||||
.map_err(Into::into)
|
};
|
||||||
},
|
|
||||||
)?;
|
|
||||||
|
|
||||||
if sender_power_level < invite_level {
|
if sender_power_level < invite_level {
|
||||||
warn!("sender's cannot send invites in this room");
|
warn!("sender's cannot send invites in this room");
|
||||||
@ -417,24 +415,17 @@ fn valid_membership_change<E: Event>(
|
|||||||
)?)
|
)?)
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
let power_levels = power_levels_event.map_or_else(
|
let power_levels: PowerLevelsEventContent = match power_levels_event {
|
||||||
|| Ok::<_, Error>(PowerLevelsEventContent::default()),
|
Some(ev) => serde_json::from_value(ev.content())?,
|
||||||
|power_levels| {
|
None => PowerLevelsEventContent::default(),
|
||||||
serde_json::from_value::<PowerLevelsEventContent>(power_levels.content())
|
};
|
||||||
.map_err(Into::into)
|
|
||||||
},
|
|
||||||
)?;
|
|
||||||
|
|
||||||
let sender_power = power_levels.users.get(sender).map_or_else(
|
let sender_power = power_levels.users.get(sender).or_else(|| {
|
||||||
|| (sender_membership == MembershipState::Join).then(|| &power_levels.users_default),
|
(sender_membership == MembershipState::Join).then(|| &power_levels.users_default)
|
||||||
// If it's okay, wrap with Some(_)
|
});
|
||||||
Some,
|
let target_power = power_levels.users.get(target_user).or_else(|| {
|
||||||
);
|
(target_membership == MembershipState::Join).then(|| &power_levels.users_default)
|
||||||
let target_power = power_levels.users.get(target_user).map_or_else(
|
});
|
||||||
|| (target_membership == MembershipState::Join).then(|| &power_levels.users_default),
|
|
||||||
// If it's okay, wrap with Some(_)
|
|
||||||
Some,
|
|
||||||
);
|
|
||||||
|
|
||||||
let mut join_rules = JoinRule::Invite;
|
let mut join_rules = JoinRule::Invite;
|
||||||
if let Some(jr) = join_rules_event {
|
if let Some(jr) = join_rules_event {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user