Fix default-allowed clippy lints

This commit is contained in:
Jonas Platte 2021-05-08 00:03:08 +02:00
parent 509283d947
commit 56bf45c023
No known key found for this signature in database
GPG Key ID: 7D261D771D915378
5 changed files with 41 additions and 46 deletions

View File

@ -55,9 +55,9 @@ fn resolution_shallow_auth_chain(c: &mut Criterion) {
let (state_at_bob, state_at_charlie, _) = store.set_up(); let (state_at_bob, state_at_charlie, _) = store.set_up();
b.iter(|| { b.iter(|| {
let mut ev_map: state_res::EventMap<Arc<event::StateEvent>> = store.0.clone(); let mut ev_map: state_res::EventMap<Arc<StateEvent>> = store.0.clone();
let state_sets = vec![state_at_bob.clone(), state_at_charlie.clone()]; let state_sets = vec![state_at_bob.clone(), state_at_charlie.clone()];
let _ = match StateResolution::resolve::<event::StateEvent>( let _ = match StateResolution::resolve::<StateEvent>(
&room_id(), &room_id(),
&RoomVersionId::Version2, &RoomVersionId::Version2,
&state_sets, &state_sets,
@ -115,7 +115,7 @@ fn resolve_deeper_event_set(c: &mut Criterion) {
b.iter(|| { b.iter(|| {
let state_sets = vec![state_set_a.clone(), state_set_b.clone()]; let state_sets = vec![state_set_a.clone(), state_set_b.clone()];
let _ = match StateResolution::resolve::<event::StateEvent>( let _ = match StateResolution::resolve::<StateEvent>(
&room_id(), &room_id(),
&RoomVersionId::Version2, &RoomVersionId::Version2,
&state_sets, &state_sets,
@ -216,7 +216,7 @@ impl<E: Event> TestStore<E> {
Ok(chains Ok(chains
.iter() .iter()
.flatten() .flatten()
.filter(|id| !common.contains(&id)) .filter(|id| !common.contains(id))
.cloned() .cloned()
.collect::<BTreeSet<_>>() .collect::<BTreeSet<_>>()
.into_iter() .into_iter()
@ -227,7 +227,7 @@ impl<E: Event> TestStore<E> {
} }
} }
impl TestStore<event::StateEvent> { impl TestStore<StateEvent> {
pub fn set_up(&mut self) -> (StateMap<EventId>, StateMap<EventId>, StateMap<EventId>) { pub fn set_up(&mut self) -> (StateMap<EventId>, StateMap<EventId>, StateMap<EventId>) {
let create_event = to_pdu_event::<EventId>( let create_event = to_pdu_event::<EventId>(
"CREATE", "CREATE",
@ -420,7 +420,7 @@ where
// all graphs start with these input events // all graphs start with these input events
#[allow(non_snake_case)] #[allow(non_snake_case)]
fn INITIAL_EVENTS() -> BTreeMap<EventId, Arc<event::StateEvent>> { fn INITIAL_EVENTS() -> BTreeMap<EventId, Arc<StateEvent>> {
vec![ vec![
to_pdu_event::<EventId>( to_pdu_event::<EventId>(
"CREATE", "CREATE",
@ -502,7 +502,7 @@ fn INITIAL_EVENTS() -> BTreeMap<EventId, Arc<event::StateEvent>> {
// all graphs start with these input events // all graphs start with these input events
#[allow(non_snake_case)] #[allow(non_snake_case)]
fn BAN_STATE_SET() -> BTreeMap<EventId, Arc<event::StateEvent>> { fn BAN_STATE_SET() -> BTreeMap<EventId, Arc<StateEvent>> {
vec![ vec![
to_pdu_event( to_pdu_event(
"PA", "PA",
@ -765,7 +765,7 @@ pub mod event {
pub fn signatures( pub fn signatures(
&self, &self,
) -> BTreeMap<Box<ServerName>, BTreeMap<ruma::ServerSigningKeyId, String>> { ) -> BTreeMap<Box<ServerName>, BTreeMap<ServerSigningKeyId, String>> {
match &self.rest { match &self.rest {
Pdu::RoomV1Pdu(_) => maplit::btreemap! {}, Pdu::RoomV1Pdu(_) => maplit::btreemap! {},
Pdu::RoomV3Pdu(ev) => ev.signatures.clone(), Pdu::RoomV3Pdu(ev) => ev.signatures.clone(),

View File

@ -220,7 +220,7 @@ pub fn auth_check<E: Event>(
incoming_event.content(), incoming_event.content(),
prev_event, prev_event,
current_third_party_invite, current_third_party_invite,
&auth_events, auth_events,
)? { )? {
return Ok(false); return Ok(false);
} }
@ -230,7 +230,7 @@ pub fn auth_check<E: Event>(
} }
// If the sender's current membership state is not join, reject // If the sender's current membership state is not join, reject
match check_event_sender_in_room(&incoming_event.sender(), &auth_events) { match check_event_sender_in_room(incoming_event.sender(), auth_events) {
Some(true) => {} // sender in room Some(true) => {} // sender in room
Some(false) => { Some(false) => {
log::warn!("sender's membership is not join"); log::warn!("sender's membership is not join");
@ -245,7 +245,7 @@ pub fn auth_check<E: Event>(
// 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.kind() == EventType::RoomThirdPartyInvite if incoming_event.kind() == EventType::RoomThirdPartyInvite
&& !can_send_invite(incoming_event, &auth_events)? && !can_send_invite(incoming_event, auth_events)?
{ {
log::warn!("sender's cannot send invites in this room"); log::warn!("sender's cannot send invites in this room");
return Ok(false); return Ok(false);
@ -253,7 +253,7 @@ pub fn auth_check<E: Event>(
// If the event type's required power level is greater than the sender's power level, reject // If the event type's required power level is greater than the sender's power level, reject
// If the event has a state_key that starts with an @ and does not match the sender, reject. // If the event has a state_key that starts with an @ and does not match the sender, reject.
if !can_send_event(&incoming_event, &auth_events) { if !can_send_event(incoming_event, auth_events) {
log::warn!("user cannot send event"); log::warn!("user cannot send event");
return Ok(false); return Ok(false);
} }
@ -262,7 +262,7 @@ pub fn auth_check<E: Event>(
log::info!("starting m.room.power_levels check"); log::info!("starting m.room.power_levels check");
if let Some(required_pwr_lvl) = if let Some(required_pwr_lvl) =
check_power_levels(room_version, &incoming_event, &auth_events) check_power_levels(room_version, incoming_event, auth_events)
{ {
if !required_pwr_lvl { if !required_pwr_lvl {
log::warn!("power level was not allowed"); log::warn!("power level was not allowed");
@ -283,7 +283,7 @@ pub fn auth_check<E: Event>(
if room_version.extra_redaction_checks if room_version.extra_redaction_checks
&& incoming_event.kind() == EventType::RoomRedaction && incoming_event.kind() == EventType::RoomRedaction
&& !check_redaction(room_version, incoming_event, &auth_events)? && !check_redaction(room_version, incoming_event, auth_events)?
{ {
return Ok(false); return Ok(false);
} }
@ -405,7 +405,7 @@ pub fn valid_membership_change<E: Event>(
|| join_rules == JoinRule::Public; || join_rules == JoinRule::Public;
if !allow { if !allow {
warn!("Can't join if join rules is not public and user is not invited/joined") warn!("Can't join if join rules is not public and user is not invited/joined");
} }
allow allow
} }
@ -508,7 +508,7 @@ pub fn can_send_event<E: Event>(event: &Arc<E>, auth_events: &StateMap<Arc<E>>)
let ple = auth_events.get(&(EventType::RoomPowerLevels, "".into())); let ple = auth_events.get(&(EventType::RoomPowerLevels, "".into()));
let event_type_power_level = get_send_level(&event.kind(), event.state_key(), ple); let event_type_power_level = get_send_level(&event.kind(), event.state_key(), ple);
let user_level = get_user_power_level(&event.sender(), auth_events); let user_level = get_user_power_level(event.sender(), auth_events);
log::debug!( log::debug!(
"{} ev_type {} usr {}", "{} ev_type {} usr {}",
@ -561,7 +561,7 @@ pub fn check_power_levels<E: Event>(
// validation of users is done in Ruma, synapse for loops validating user_ids and integers here // validation of users is done in Ruma, synapse for loops validating user_ids and integers here
log::info!("validation of power event finished"); log::info!("validation of power event finished");
let user_level = get_user_power_level(&power_event.sender(), auth_events); let user_level = get_user_power_level(power_event.sender(), auth_events);
let mut user_levels_to_check = btreeset![]; let mut user_levels_to_check = btreeset![];
let old_list = &current_content.users; let old_list = &current_content.users;
@ -690,7 +690,7 @@ pub fn check_redaction<E: Event>(
redaction_event: &Arc<E>, redaction_event: &Arc<E>,
auth_events: &StateMap<Arc<E>>, auth_events: &StateMap<Arc<E>>,
) -> Result<bool> { ) -> Result<bool> {
let user_level = get_user_power_level(&redaction_event.sender(), auth_events); let user_level = get_user_power_level(redaction_event.sender(), auth_events);
let redact_level = get_named_level(auth_events, "redact", 50); let redact_level = get_named_level(auth_events, "redact", 50);
if user_level >= redact_level { if user_level >= redact_level {
@ -806,7 +806,7 @@ pub fn get_send_level<E: Event>(
.and_then(|ple| { .and_then(|ple| {
serde_json::from_value::<PowerLevelsEventContent>(ple.content()) serde_json::from_value::<PowerLevelsEventContent>(ple.content())
.map(|content| { .map(|content| {
content.events.get(&e_type).cloned().unwrap_or_else(|| { content.events.get(e_type).copied().unwrap_or_else(|| {
if state_key.is_some() { if state_key.is_some() {
content.state_default content.state_default
} else { } else {
@ -822,7 +822,7 @@ pub fn get_send_level<E: Event>(
/// Check user can send invite. /// Check user can send invite.
pub fn can_send_invite<E: Event>(event: &Arc<E>, auth_events: &StateMap<Arc<E>>) -> Result<bool> { pub fn can_send_invite<E: Event>(event: &Arc<E>, auth_events: &StateMap<Arc<E>>) -> Result<bool> {
let user_level = get_user_power_level(&event.sender(), auth_events); let user_level = get_user_power_level(event.sender(), auth_events);
let key = (EventType::RoomPowerLevels, "".into()); let key = (EventType::RoomPowerLevels, "".into());
let invite_level = auth_events let invite_level = auth_events
.get(&key) .get(&key)

View File

@ -59,7 +59,7 @@ impl StateResolution {
log::info!("State resolution starting"); log::info!("State resolution starting");
// split non-conflicting and conflicting state // split non-conflicting and conflicting state
let (clean, conflicting) = StateResolution::separate(&state_sets); let (clean, conflicting) = StateResolution::separate(state_sets);
log::info!("non conflicting {:?}", clean.len()); log::info!("non conflicting {:?}", clean.len());
@ -96,7 +96,7 @@ impl StateResolution {
// get only the control events with a state_key: "" or ban/kick event (sender != state_key) // get only the control events with a state_key: "" or ban/kick event (sender != state_key)
let control_events = all_conflicted let control_events = all_conflicted
.iter() .iter()
.filter(|id| is_power_event_id(id, &event_map)) .filter(|id| is_power_event_id(id, event_map))
.cloned() .cloned()
.collect::<Vec<_>>(); .collect::<Vec<_>>();
@ -281,7 +281,7 @@ impl StateResolution {
// this is used in the `key_fn` passed to the lexico_topo_sort fn // this is used in the `key_fn` passed to the lexico_topo_sort fn
let mut event_to_pl = BTreeMap::new(); let mut event_to_pl = BTreeMap::new();
for event_id in graph.keys() { for event_id in graph.keys() {
let pl = StateResolution::get_power_level_for_sender(room_id, &event_id, event_map); let pl = StateResolution::get_power_level_for_sender(room_id, event_id, event_map);
log::info!("{} power level {}", event_id.to_string(), pl); log::info!("{} power level {}", event_id.to_string(), pl);
event_to_pl.insert(event_id.clone(), pl); event_to_pl.insert(event_id.clone(), pl);
@ -408,12 +408,11 @@ impl StateResolution {
return 0; return 0;
} }
if let Some(content) = pl if let Some(content) =
.map(|pl| serde_json::from_value::<PowerLevelsEventContent>(pl.content()).ok()) pl.and_then(|pl| serde_json::from_value::<PowerLevelsEventContent>(pl.content()).ok())
.flatten()
{ {
if let Ok(ev) = event { if let Ok(ev) = event {
if let Some(user) = content.users.get(&ev.sender()) { if let Some(user) = content.users.get(ev.sender()) {
log::debug!("found {} at power_level {}", ev.sender().as_str(), user); log::debug!("found {} at power_level {}", ev.sender().as_str(), user);
return (*user).into(); return (*user).into();
} }
@ -461,7 +460,7 @@ impl StateResolution {
let mut auth_events = BTreeMap::new(); let mut auth_events = BTreeMap::new();
for aid in &event.auth_events() { for aid in &event.auth_events() {
if let Ok(ev) = StateResolution::get_or_load_event(room_id, &aid, event_map) { if let Ok(ev) = StateResolution::get_or_load_event(room_id, aid, event_map) {
// TODO synapse check "rejected_reason", I'm guessing this is redacted_because in ruma ?? // TODO synapse check "rejected_reason", I'm guessing this is redacted_because in ruma ??
auth_events.insert( auth_events.insert(
( (
@ -477,9 +476,9 @@ impl StateResolution {
} }
} }
for key in event_auth::auth_types_for_event( for key in auth_types_for_event(
&event.kind(), &event.kind(),
&event.sender(), event.sender(),
Some(state_key.clone()), Some(state_key.clone()),
event.content(), event.content(),
) { ) {
@ -510,7 +509,7 @@ impl StateResolution {
} }
}); });
if event_auth::auth_check( if auth_check(
room_version, room_version,
&event, &event,
most_recent_prev_event, most_recent_prev_event,
@ -563,7 +562,7 @@ impl StateResolution {
let auth_events = &event.auth_events(); let auth_events = &event.auth_events();
pl = None; pl = None;
for aid in auth_events { for aid in auth_events {
let ev = StateResolution::get_or_load_event(room_id, &aid, event_map).unwrap(); let ev = StateResolution::get_or_load_event(room_id, aid, event_map).unwrap();
if is_type_and_key(&ev, EventType::RoomPowerLevels, "") { if is_type_and_key(&ev, EventType::RoomPowerLevels, "") {
pl = Some(aid.clone()); pl = Some(aid.clone());
break; break;
@ -625,7 +624,7 @@ impl StateResolution {
while let Some(sort_ev) = event { while let Some(sort_ev) = event {
log::debug!("mainline event_id {}", sort_ev.event_id().to_string()); log::debug!("mainline event_id {}", sort_ev.event_id().to_string());
let id = &sort_ev.event_id(); let id = &sort_ev.event_id();
if let Some(depth) = mainline_map.get(&id) { if let Some(depth) = mainline_map.get(id) {
return Ok(*depth); return Ok(*depth);
} }
@ -634,7 +633,7 @@ impl StateResolution {
event = None; event = None;
for aid in auth_events { for aid in auth_events {
// dbg!(&aid); // dbg!(&aid);
let aev = StateResolution::get_or_load_event(room_id, &aid, event_map)?; let aev = StateResolution::get_or_load_event(room_id, aid, event_map)?;
if is_type_and_key(&aev, EventType::RoomPowerLevels, "") { if is_type_and_key(&aev, EventType::RoomPowerLevels, "") {
event = Some(aev); event = Some(aev);
break; break;
@ -663,8 +662,8 @@ impl StateResolution {
.unwrap() .unwrap()
.auth_events() .auth_events()
{ {
if auth_diff.contains(&aid) { if auth_diff.contains(aid) {
if !graph.contains_key(&aid) { if !graph.contains_key(aid) {
state.push(aid.clone()); state.push(aid.clone());
} }

View File

@ -1,13 +1,9 @@
use std::sync::Arc; use std::sync::Arc;
#[rustfmt::skip] // this deletes the comments for some reason yay! use state_res::{event_auth::valid_membership_change, StateMap};
use state_res::{ // use state_res::event_auth:::{
event_auth::{ // auth_check, auth_types_for_event, can_federate, check_power_levels, check_redaction,
// auth_check, auth_types_for_event, can_federate, check_power_levels, check_redaction, // };
valid_membership_change,
},
StateMap
};
mod utils; mod utils;
use utils::{alice, charlie, event_id, member_content_ban, to_pdu_event, INITIAL_EVENTS}; use utils::{alice, charlie, event_id, member_content_ban, to_pdu_event, INITIAL_EVENTS};

View File

@ -28,7 +28,7 @@ fn test_event_sort() {
let power_events = event_map let power_events = event_map
.values() .values()
.filter(|pdu| is_power_event(&pdu)) .filter(|pdu| is_power_event(pdu))
.map(|pdu| pdu.event_id().clone()) .map(|pdu| pdu.event_id().clone())
.collect::<Vec<_>>(); .collect::<Vec<_>>();
@ -39,7 +39,7 @@ fn test_event_sort() {
&room_id(), &room_id(),
&power_events, &power_events,
&mut events, &mut events,
&auth_chain, auth_chain,
); );
// This is a TODO in conduit // This is a TODO in conduit