Make auth_events arg for auth_check be a ref, cleanup

This commit is contained in:
Devin Ragotzy 2021-01-03 17:44:24 -05:00
parent b0ee71e401
commit f4772e0fcb
4 changed files with 12 additions and 27 deletions

View File

@ -71,7 +71,7 @@ pub fn auth_check<E: Event>(
room_version: &RoomVersionId, room_version: &RoomVersionId,
incoming_event: &Arc<E>, incoming_event: &Arc<E>,
prev_event: Option<Arc<E>>, prev_event: Option<Arc<E>>,
auth_events: StateMap<Arc<E>>, auth_events: &StateMap<Arc<E>>,
current_third_party_invite: Option<Arc<E>>, current_third_party_invite: Option<Arc<E>>,
) -> Result<bool> { ) -> Result<bool> {
tracing::info!("auth_check beginning for {}", incoming_event.kind()); tracing::info!("auth_check beginning for {}", incoming_event.kind());
@ -315,22 +315,7 @@ pub fn valid_membership_change<E: Event>(
let key = (EventType::RoomPowerLevels, Some("".into())); let key = (EventType::RoomPowerLevels, Some("".into()));
let power_levels = auth_events.get(&key).map_or_else( let power_levels = auth_events.get(&key).map_or_else(
|| { || Ok::<_, Error>(power_levels::PowerLevelsEventContent::default()),
Ok::<_, Error>(power_levels::PowerLevelsEventContent {
ban: 50.into(),
events: BTreeMap::new(),
events_default: 0.into(),
invite: 50.into(),
kick: 50.into(),
redact: 50.into(),
state_default: 0.into(),
users: BTreeMap::new(),
users_default: 0.into(),
notifications: ruma::events::room::power_levels::NotificationPowerLevels {
room: 50.into(),
},
})
},
|power_levels| { |power_levels| {
serde_json::from_value::<PowerLevelsEventContent>(power_levels.content()) serde_json::from_value::<PowerLevelsEventContent>(power_levels.content())
.map_err(Into::into) .map_err(Into::into)
@ -458,7 +443,7 @@ pub fn can_send_event<E: Event>(event: &Arc<E>, auth_events: &StateMap<Arc<E>>)
tracing::debug!( tracing::debug!(
"{} ev_type {} usr {}", "{} ev_type {} usr {}",
event.event_id().to_string(), event.event_id().as_str(),
event_type_power_level, event_type_power_level,
user_level user_level
); );
@ -773,7 +758,7 @@ pub fn get_send_level<E: Event>(
} }
lvl lvl
} else { } else {
50 50 // default power level
} }
} else { } else {
0 0

View File

@ -72,7 +72,7 @@ impl StateResolution {
} }
} }
event_auth::auth_check(room_version, &ev, prev_event, auth_events, None) event_auth::auth_check(room_version, &ev, prev_event, &auth_events, None)
} }
/// Resolve sets of state events as they come in. Internally `StateResolution` builds a graph /// Resolve sets of state events as they come in. Internally `StateResolution` builds a graph
@ -586,7 +586,7 @@ impl StateResolution {
room_version, room_version,
&event, &event,
most_recent_prev_event, most_recent_prev_event,
auth_events, &auth_events,
current_third_party, current_third_party,
)? { )? {
// add event to resolved state map // add event to resolved state map

View File

@ -10,7 +10,7 @@ use state_res::{
}; };
mod utils; mod utils;
use utils::{alice, charlie, event_id, member_content_ban, room_id, to_pdu_event, INITIAL_EVENTS}; use utils::{alice, charlie, event_id, member_content_ban, to_pdu_event, INITIAL_EVENTS};
#[test] #[test]
fn test_ban_pass() { fn test_ban_pass() {
@ -32,8 +32,8 @@ fn test_ban_pass() {
ruma::events::EventType::RoomMember, ruma::events::EventType::RoomMember,
Some(charlie().as_str()), Some(charlie().as_str()),
member_content_ban(), member_content_ban(),
&vec![], &[],
&vec![event_id("IMC")], &[event_id("IMC")],
); );
assert!(valid_membership_change( assert!(valid_membership_change(
@ -67,8 +67,8 @@ fn test_ban_fail() {
ruma::events::EventType::RoomMember, ruma::events::EventType::RoomMember,
Some(alice().as_str()), Some(alice().as_str()),
member_content_ban(), member_content_ban(),
&vec![], &[],
&vec![event_id("IMC")], &[event_id("IMC")],
); );
assert!(!valid_membership_change( assert!(!valid_membership_change(

View File

@ -4,7 +4,7 @@ use ruma::{
events::EventType, events::EventType,
identifiers::{EventId, RoomVersionId}, identifiers::{EventId, RoomVersionId},
}; };
use state_res::{is_power_event, Event, StateMap}; use state_res::{is_power_event, StateMap};
mod utils; mod utils;
use utils::{room_id, TestStore, INITIAL_EVENTS}; use utils::{room_id, TestStore, INITIAL_EVENTS};