Fix default-allowed clippy lints
This commit is contained in:
parent
509283d947
commit
56bf45c023
@ -55,9 +55,9 @@ fn resolution_shallow_auth_chain(c: &mut Criterion) {
|
||||
let (state_at_bob, state_at_charlie, _) = store.set_up();
|
||||
|
||||
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 _ = match StateResolution::resolve::<event::StateEvent>(
|
||||
let _ = match StateResolution::resolve::<StateEvent>(
|
||||
&room_id(),
|
||||
&RoomVersionId::Version2,
|
||||
&state_sets,
|
||||
@ -115,7 +115,7 @@ fn resolve_deeper_event_set(c: &mut Criterion) {
|
||||
|
||||
b.iter(|| {
|
||||
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(),
|
||||
&RoomVersionId::Version2,
|
||||
&state_sets,
|
||||
@ -216,7 +216,7 @@ impl<E: Event> TestStore<E> {
|
||||
Ok(chains
|
||||
.iter()
|
||||
.flatten()
|
||||
.filter(|id| !common.contains(&id))
|
||||
.filter(|id| !common.contains(id))
|
||||
.cloned()
|
||||
.collect::<BTreeSet<_>>()
|
||||
.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>) {
|
||||
let create_event = to_pdu_event::<EventId>(
|
||||
"CREATE",
|
||||
@ -420,7 +420,7 @@ where
|
||||
|
||||
// all graphs start with these input events
|
||||
#[allow(non_snake_case)]
|
||||
fn INITIAL_EVENTS() -> BTreeMap<EventId, Arc<event::StateEvent>> {
|
||||
fn INITIAL_EVENTS() -> BTreeMap<EventId, Arc<StateEvent>> {
|
||||
vec![
|
||||
to_pdu_event::<EventId>(
|
||||
"CREATE",
|
||||
@ -502,7 +502,7 @@ fn INITIAL_EVENTS() -> BTreeMap<EventId, Arc<event::StateEvent>> {
|
||||
|
||||
// all graphs start with these input events
|
||||
#[allow(non_snake_case)]
|
||||
fn BAN_STATE_SET() -> BTreeMap<EventId, Arc<event::StateEvent>> {
|
||||
fn BAN_STATE_SET() -> BTreeMap<EventId, Arc<StateEvent>> {
|
||||
vec![
|
||||
to_pdu_event(
|
||||
"PA",
|
||||
@ -765,7 +765,7 @@ pub mod event {
|
||||
|
||||
pub fn signatures(
|
||||
&self,
|
||||
) -> BTreeMap<Box<ServerName>, BTreeMap<ruma::ServerSigningKeyId, String>> {
|
||||
) -> BTreeMap<Box<ServerName>, BTreeMap<ServerSigningKeyId, String>> {
|
||||
match &self.rest {
|
||||
Pdu::RoomV1Pdu(_) => maplit::btreemap! {},
|
||||
Pdu::RoomV3Pdu(ev) => ev.signatures.clone(),
|
||||
|
@ -220,7 +220,7 @@ pub fn auth_check<E: Event>(
|
||||
incoming_event.content(),
|
||||
prev_event,
|
||||
current_third_party_invite,
|
||||
&auth_events,
|
||||
auth_events,
|
||||
)? {
|
||||
return Ok(false);
|
||||
}
|
||||
@ -230,7 +230,7 @@ pub fn auth_check<E: Event>(
|
||||
}
|
||||
|
||||
// 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(false) => {
|
||||
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
|
||||
// or equal to the invite level
|
||||
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");
|
||||
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 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");
|
||||
return Ok(false);
|
||||
}
|
||||
@ -262,7 +262,7 @@ pub fn auth_check<E: Event>(
|
||||
log::info!("starting m.room.power_levels check");
|
||||
|
||||
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 {
|
||||
log::warn!("power level was not allowed");
|
||||
@ -283,7 +283,7 @@ pub fn auth_check<E: Event>(
|
||||
|
||||
if room_version.extra_redaction_checks
|
||||
&& incoming_event.kind() == EventType::RoomRedaction
|
||||
&& !check_redaction(room_version, incoming_event, &auth_events)?
|
||||
&& !check_redaction(room_version, incoming_event, auth_events)?
|
||||
{
|
||||
return Ok(false);
|
||||
}
|
||||
@ -405,7 +405,7 @@ pub fn valid_membership_change<E: Event>(
|
||||
|| join_rules == JoinRule::Public;
|
||||
|
||||
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
|
||||
}
|
||||
@ -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 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!(
|
||||
"{} 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
|
||||
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 old_list = ¤t_content.users;
|
||||
@ -690,7 +690,7 @@ pub fn check_redaction<E: Event>(
|
||||
redaction_event: &Arc<E>,
|
||||
auth_events: &StateMap<Arc<E>>,
|
||||
) -> 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);
|
||||
|
||||
if user_level >= redact_level {
|
||||
@ -806,7 +806,7 @@ pub fn get_send_level<E: Event>(
|
||||
.and_then(|ple| {
|
||||
serde_json::from_value::<PowerLevelsEventContent>(ple.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() {
|
||||
content.state_default
|
||||
} else {
|
||||
@ -822,7 +822,7 @@ pub fn get_send_level<E: Event>(
|
||||
|
||||
/// Check user can send invite.
|
||||
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 invite_level = auth_events
|
||||
.get(&key)
|
||||
|
31
src/lib.rs
31
src/lib.rs
@ -59,7 +59,7 @@ impl StateResolution {
|
||||
log::info!("State resolution starting");
|
||||
|
||||
// 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());
|
||||
|
||||
@ -96,7 +96,7 @@ impl StateResolution {
|
||||
// get only the control events with a state_key: "" or ban/kick event (sender != state_key)
|
||||
let control_events = all_conflicted
|
||||
.iter()
|
||||
.filter(|id| is_power_event_id(id, &event_map))
|
||||
.filter(|id| is_power_event_id(id, event_map))
|
||||
.cloned()
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
@ -281,7 +281,7 @@ impl StateResolution {
|
||||
// this is used in the `key_fn` passed to the lexico_topo_sort fn
|
||||
let mut event_to_pl = BTreeMap::new();
|
||||
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);
|
||||
|
||||
event_to_pl.insert(event_id.clone(), pl);
|
||||
@ -408,12 +408,11 @@ impl StateResolution {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if let Some(content) = pl
|
||||
.map(|pl| serde_json::from_value::<PowerLevelsEventContent>(pl.content()).ok())
|
||||
.flatten()
|
||||
if let Some(content) =
|
||||
pl.and_then(|pl| serde_json::from_value::<PowerLevelsEventContent>(pl.content()).ok())
|
||||
{
|
||||
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);
|
||||
return (*user).into();
|
||||
}
|
||||
@ -461,7 +460,7 @@ impl StateResolution {
|
||||
|
||||
let mut auth_events = BTreeMap::new();
|
||||
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 ??
|
||||
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.sender(),
|
||||
event.sender(),
|
||||
Some(state_key.clone()),
|
||||
event.content(),
|
||||
) {
|
||||
@ -510,7 +509,7 @@ impl StateResolution {
|
||||
}
|
||||
});
|
||||
|
||||
if event_auth::auth_check(
|
||||
if auth_check(
|
||||
room_version,
|
||||
&event,
|
||||
most_recent_prev_event,
|
||||
@ -563,7 +562,7 @@ impl StateResolution {
|
||||
let auth_events = &event.auth_events();
|
||||
pl = None;
|
||||
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, "") {
|
||||
pl = Some(aid.clone());
|
||||
break;
|
||||
@ -625,7 +624,7 @@ impl StateResolution {
|
||||
while let Some(sort_ev) = event {
|
||||
log::debug!("mainline event_id {}", sort_ev.event_id().to_string());
|
||||
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);
|
||||
}
|
||||
|
||||
@ -634,7 +633,7 @@ impl StateResolution {
|
||||
event = None;
|
||||
for aid in auth_events {
|
||||
// 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, "") {
|
||||
event = Some(aev);
|
||||
break;
|
||||
@ -663,8 +662,8 @@ impl StateResolution {
|
||||
.unwrap()
|
||||
.auth_events()
|
||||
{
|
||||
if auth_diff.contains(&aid) {
|
||||
if !graph.contains_key(&aid) {
|
||||
if auth_diff.contains(aid) {
|
||||
if !graph.contains_key(aid) {
|
||||
state.push(aid.clone());
|
||||
}
|
||||
|
||||
|
@ -1,13 +1,9 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
#[rustfmt::skip] // this deletes the comments for some reason yay!
|
||||
use state_res::{
|
||||
event_auth::{
|
||||
// auth_check, auth_types_for_event, can_federate, check_power_levels, check_redaction,
|
||||
valid_membership_change,
|
||||
},
|
||||
StateMap
|
||||
};
|
||||
use state_res::{event_auth::valid_membership_change, StateMap};
|
||||
// use state_res::event_auth:::{
|
||||
// auth_check, auth_types_for_event, can_federate, check_power_levels, check_redaction,
|
||||
// };
|
||||
|
||||
mod utils;
|
||||
use utils::{alice, charlie, event_id, member_content_ban, to_pdu_event, INITIAL_EVENTS};
|
||||
|
@ -28,7 +28,7 @@ fn test_event_sort() {
|
||||
|
||||
let power_events = event_map
|
||||
.values()
|
||||
.filter(|pdu| is_power_event(&pdu))
|
||||
.filter(|pdu| is_power_event(pdu))
|
||||
.map(|pdu| pdu.event_id().clone())
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
@ -39,7 +39,7 @@ fn test_event_sort() {
|
||||
&room_id(),
|
||||
&power_events,
|
||||
&mut events,
|
||||
&auth_chain,
|
||||
auth_chain,
|
||||
);
|
||||
|
||||
// This is a TODO in conduit
|
||||
|
Loading…
x
Reference in New Issue
Block a user