Use RoomEventType instead of EventType for PDUs and power levels
This commit is contained in:
		
							parent
							
								
									6f6e7ca68e
								
							
						
					
					
						commit
						ce785064a9
					
				| @ -14,7 +14,7 @@ use serde::{ | ||||
| }; | ||||
| use serde_json::{from_str as from_json_str, value::RawValue as RawJsonValue}; | ||||
| 
 | ||||
| use super::EventType; | ||||
| use super::RoomEventType; | ||||
| use crate::{EventId, MilliSecondsSinceUnixEpoch, RoomId, ServerName, ServerSigningKeyId, UserId}; | ||||
| 
 | ||||
| /// Enum for PDU schemas
 | ||||
| @ -53,7 +53,7 @@ pub struct RoomV1Pdu { | ||||
|     // TODO: Encode event type as content enum variant, like event enums do
 | ||||
|     /// The event's type.
 | ||||
|     #[serde(rename = "type")] | ||||
|     pub kind: EventType, | ||||
|     pub kind: RoomEventType, | ||||
| 
 | ||||
|     /// The event's content.
 | ||||
|     pub content: Box<RawJsonValue>, | ||||
| @ -112,7 +112,7 @@ pub struct RoomV3Pdu { | ||||
|     // TODO: Encode event type as content enum variant, like event enums do
 | ||||
|     /// The event's type.
 | ||||
|     #[serde(rename = "type")] | ||||
|     pub kind: EventType, | ||||
|     pub kind: RoomEventType, | ||||
| 
 | ||||
|     /// The event's content.
 | ||||
|     pub content: Box<RawJsonValue>, | ||||
|  | ||||
| @ -9,7 +9,7 @@ use ruma_macros::EventContent; | ||||
| use serde::{Deserialize, Serialize}; | ||||
| 
 | ||||
| use crate::{ | ||||
|     events::EventType, | ||||
|     events::RoomEventType, | ||||
|     power_levels::{default_power_level, NotificationPowerLevels}, | ||||
|     UserId, | ||||
| }; | ||||
| @ -45,7 +45,7 @@ pub struct RoomPowerLevelsEventContent { | ||||
|     )] | ||||
|     #[serde(default, skip_serializing_if = "BTreeMap::is_empty")] | ||||
|     #[ruma_event(skip_redaction)] | ||||
|     pub events: BTreeMap<EventType, Int>, | ||||
|     pub events: BTreeMap<RoomEventType, Int>, | ||||
| 
 | ||||
|     /// The default level required to send message events.
 | ||||
|     ///
 | ||||
| @ -182,7 +182,7 @@ mod tests { | ||||
|     use serde_json::{json, to_value as to_json_value}; | ||||
| 
 | ||||
|     use super::{default_power_level, NotificationPowerLevels, RoomPowerLevelsEventContent}; | ||||
|     use crate::events::{EventType, StateEvent, Unsigned}; | ||||
|     use crate::events::{StateEvent, Unsigned}; | ||||
| 
 | ||||
|     #[test] | ||||
|     fn serialization_with_optional_fields_as_none() { | ||||
| @ -231,7 +231,7 @@ mod tests { | ||||
|             content: RoomPowerLevelsEventContent { | ||||
|                 ban: int!(23), | ||||
|                 events: btreemap! { | ||||
|                     EventType::Dummy => int!(23) | ||||
|                     "m.dummy".into() => int!(23) | ||||
|                 }, | ||||
|                 events_default: int!(23), | ||||
|                 invite: int!(23), | ||||
| @ -250,7 +250,7 @@ mod tests { | ||||
|                 // Make just one field different so we at least know they're two different objects.
 | ||||
|                 ban: int!(42), | ||||
|                 events: btreemap! { | ||||
|                     EventType::Dummy => int!(42) | ||||
|                     "m.dummy".into() => int!(42) | ||||
|                 }, | ||||
|                 events_default: int!(42), | ||||
|                 invite: int!(42), | ||||
|  | ||||
| @ -6,7 +6,7 @@ use ruma_common::{ | ||||
|     event_id, | ||||
|     events::{ | ||||
|         pdu::{EventHash, Pdu, RoomV1Pdu, RoomV3Pdu}, | ||||
|         EventType, | ||||
|         RoomEventType, | ||||
|     }, | ||||
|     room_id, server_name, server_signing_key_id, user_id, MilliSecondsSinceUnixEpoch, | ||||
| }; | ||||
| @ -34,7 +34,7 @@ fn serialize_pdu_as_v1() { | ||||
|         sender: user_id!("@sender:example.com").to_owned(), | ||||
|         origin: "matrix.org".into(), | ||||
|         origin_server_ts: MilliSecondsSinceUnixEpoch(1_592_050_773_658_u64.try_into().unwrap()), | ||||
|         kind: EventType::RoomPowerLevels, | ||||
|         kind: RoomEventType::RoomPowerLevels, | ||||
|         content: to_raw_json_value(&json!({ "testing": 123 })).unwrap(), | ||||
|         state_key: Some("state".into()), | ||||
|         prev_events: vec![( | ||||
| @ -100,7 +100,7 @@ fn serialize_pdu_as_v3() { | ||||
|         sender: user_id!("@sender:example.com").to_owned(), | ||||
|         origin: "matrix.org".into(), | ||||
|         origin_server_ts: MilliSecondsSinceUnixEpoch(1_592_050_773_658_u64.try_into().unwrap()), | ||||
|         kind: EventType::RoomPowerLevels, | ||||
|         kind: RoomEventType::RoomPowerLevels, | ||||
|         content: to_raw_json_value(&json!({ "testing": 123 })).unwrap(), | ||||
|         state_key: Some("state".into()), | ||||
|         prev_events: vec![event_id!("$previousevent:matrix.org").to_owned()], | ||||
|  | ||||
| @ -28,7 +28,7 @@ use ruma_common::{ | ||||
|             join_rules::{JoinRule, RoomJoinRulesEventContent}, | ||||
|             member::{MembershipState, RoomMemberEventContent}, | ||||
|         }, | ||||
|         EventType, | ||||
|         RoomEventType, | ||||
|     }, | ||||
|     room_id, user_id, EventId, MilliSecondsSinceUnixEpoch, RoomId, RoomVersionId, UserId, | ||||
| }; | ||||
| @ -240,7 +240,7 @@ impl TestStore<StateEvent> { | ||||
|         let create_event = to_pdu_event::<&EventId>( | ||||
|             "CREATE", | ||||
|             alice(), | ||||
|             EventType::RoomCreate, | ||||
|             RoomEventType::RoomCreate, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({ "creator": alice() })).unwrap(), | ||||
|             &[], | ||||
| @ -252,7 +252,7 @@ impl TestStore<StateEvent> { | ||||
|         let alice_mem = to_pdu_event( | ||||
|             "IMA", | ||||
|             alice(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(alice().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &[cre.clone()], | ||||
| @ -263,7 +263,7 @@ impl TestStore<StateEvent> { | ||||
|         let join_rules = to_pdu_event( | ||||
|             "IJR", | ||||
|             alice(), | ||||
|             EventType::RoomJoinRules, | ||||
|             RoomEventType::RoomJoinRules, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&RoomJoinRulesEventContent::new(JoinRule::Public)).unwrap(), | ||||
|             &[cre.clone(), alice_mem.event_id().to_owned()], | ||||
| @ -276,7 +276,7 @@ impl TestStore<StateEvent> { | ||||
|         let bob_mem = to_pdu_event( | ||||
|             "IMB", | ||||
|             bob(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(bob().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &[cre.clone(), join_rules.event_id().to_owned()], | ||||
| @ -287,7 +287,7 @@ impl TestStore<StateEvent> { | ||||
|         let charlie_mem = to_pdu_event( | ||||
|             "IMC", | ||||
|             charlie(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(charlie().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &[cre, join_rules.event_id().to_owned()], | ||||
| @ -367,7 +367,7 @@ fn member_content_join() -> Box<RawJsonValue> { | ||||
| fn to_pdu_event<S>( | ||||
|     id: &str, | ||||
|     sender: Box<UserId>, | ||||
|     ev_type: EventType, | ||||
|     ev_type: RoomEventType, | ||||
|     state_key: Option<&str>, | ||||
|     content: Box<RawJsonValue>, | ||||
|     auth_events: &[S], | ||||
| @ -413,7 +413,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event::<&EventId>( | ||||
|             "CREATE", | ||||
|             alice(), | ||||
|             EventType::RoomCreate, | ||||
|             RoomEventType::RoomCreate, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({ "creator": alice() })).unwrap(), | ||||
|             &[], | ||||
| @ -422,7 +422,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IMA", | ||||
|             alice(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(alice().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE"], | ||||
| @ -431,7 +431,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IPOWER", | ||||
|             alice(), | ||||
|             EventType::RoomPowerLevels, | ||||
|             RoomEventType::RoomPowerLevels, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({ "users": { alice().to_string(): 100 } })).unwrap(), | ||||
|             &["CREATE", "IMA"], | ||||
| @ -440,7 +440,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IJR", | ||||
|             alice(), | ||||
|             EventType::RoomJoinRules, | ||||
|             RoomEventType::RoomJoinRules, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&RoomJoinRulesEventContent::new(JoinRule::Public)).unwrap(), | ||||
|             &["CREATE", "IMA", "IPOWER"], | ||||
| @ -449,7 +449,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IMB", | ||||
|             bob(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(bob().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE", "IJR", "IPOWER"], | ||||
| @ -458,7 +458,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IMC", | ||||
|             charlie(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(charlie().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE", "IJR", "IPOWER"], | ||||
| @ -467,7 +467,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event::<&EventId>( | ||||
|             "START", | ||||
|             charlie(), | ||||
|             EventType::RoomTopic, | ||||
|             RoomEventType::RoomTopic, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({})).unwrap(), | ||||
|             &[], | ||||
| @ -476,7 +476,7 @@ fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event::<&EventId>( | ||||
|             "END", | ||||
|             charlie(), | ||||
|             EventType::RoomTopic, | ||||
|             RoomEventType::RoomTopic, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({})).unwrap(), | ||||
|             &[], | ||||
| @ -495,7 +495,7 @@ fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "PA", | ||||
|             alice(), | ||||
|             EventType::RoomPowerLevels, | ||||
|             RoomEventType::RoomPowerLevels, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             &["CREATE", "IMA", "IPOWER"], // auth_events
 | ||||
| @ -504,7 +504,7 @@ fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "PB", | ||||
|             alice(), | ||||
|             EventType::RoomPowerLevels, | ||||
|             RoomEventType::RoomPowerLevels, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             &["CREATE", "IMA", "IPOWER"], | ||||
| @ -513,7 +513,7 @@ fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "MB", | ||||
|             alice(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(ella().as_str()), | ||||
|             member_content_ban(), | ||||
|             &["CREATE", "IMA", "PB"], | ||||
| @ -522,7 +522,7 @@ fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IME", | ||||
|             ella(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(ella().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE", "IJR", "PA"], | ||||
| @ -536,7 +536,7 @@ fn BAN_STATE_SET() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
| 
 | ||||
| mod event { | ||||
|     use ruma_common::{ | ||||
|         events::{pdu::Pdu, EventType}, | ||||
|         events::{pdu::Pdu, RoomEventType}, | ||||
|         EventId, MilliSecondsSinceUnixEpoch, RoomId, UserId, | ||||
|     }; | ||||
|     use ruma_state_res::Event; | ||||
| @ -568,7 +568,7 @@ mod event { | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         fn event_type(&self) -> &EventType { | ||||
|         fn event_type(&self) -> &RoomEventType { | ||||
|             match &self.rest { | ||||
|                 Pdu::RoomV1Pdu(ev) => &ev.kind, | ||||
|                 Pdu::RoomV3Pdu(ev) => &ev.kind, | ||||
|  | ||||
| @ -10,7 +10,7 @@ use ruma_common::{ | ||||
|             power_levels::RoomPowerLevelsEventContent, | ||||
|             third_party_invite::RoomThirdPartyInviteEventContent, | ||||
|         }, | ||||
|         EventType, | ||||
|         RoomEventType, | ||||
|     }, | ||||
|     serde::{Base64, Raw}, | ||||
|     RoomVersionId, UserId, | ||||
| @ -45,22 +45,22 @@ struct PowerLevelsContentInvite { | ||||
| ///
 | ||||
| /// This function will return an error if the supplied `content` is not a JSON object.
 | ||||
| pub fn auth_types_for_event( | ||||
|     kind: &EventType, | ||||
|     kind: &RoomEventType, | ||||
|     sender: &UserId, | ||||
|     state_key: Option<&str>, | ||||
|     content: &RawJsonValue, | ||||
| ) -> serde_json::Result<Vec<(EventType, String)>> { | ||||
|     if kind == &EventType::RoomCreate { | ||||
| ) -> serde_json::Result<Vec<(RoomEventType, String)>> { | ||||
|     if kind == &RoomEventType::RoomCreate { | ||||
|         return Ok(vec![]); | ||||
|     } | ||||
| 
 | ||||
|     let mut auth_types = vec![ | ||||
|         (EventType::RoomPowerLevels, "".to_owned()), | ||||
|         (EventType::RoomMember, sender.to_string()), | ||||
|         (EventType::RoomCreate, "".to_owned()), | ||||
|         (RoomEventType::RoomPowerLevels, "".to_owned()), | ||||
|         (RoomEventType::RoomMember, sender.to_string()), | ||||
|         (RoomEventType::RoomCreate, "".to_owned()), | ||||
|     ]; | ||||
| 
 | ||||
|     if kind == &EventType::RoomMember { | ||||
|     if kind == &RoomEventType::RoomMember { | ||||
|         #[derive(Deserialize)] | ||||
|         struct RoomMemberContentFields { | ||||
|             membership: Option<Raw<MembershipState>>, | ||||
| @ -75,7 +75,7 @@ pub fn auth_types_for_event( | ||||
|                 if [MembershipState::Join, MembershipState::Invite, MembershipState::Knock] | ||||
|                     .contains(&membership) | ||||
|                 { | ||||
|                     let key = (EventType::RoomJoinRules, "".to_owned()); | ||||
|                     let key = (RoomEventType::RoomJoinRules, "".to_owned()); | ||||
|                     if !auth_types.contains(&key) { | ||||
|                         auth_types.push(key); | ||||
|                     } | ||||
| @ -83,21 +83,21 @@ pub fn auth_types_for_event( | ||||
|                     if let Some(Ok(u)) = | ||||
|                         content.join_authorised_via_users_server.map(|m| m.deserialize()) | ||||
|                     { | ||||
|                         let key = (EventType::RoomMember, u.to_string()); | ||||
|                         let key = (RoomEventType::RoomMember, u.to_string()); | ||||
|                         if !auth_types.contains(&key) { | ||||
|                             auth_types.push(key); | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
| 
 | ||||
|                 let key = (EventType::RoomMember, state_key.to_owned()); | ||||
|                 let key = (RoomEventType::RoomMember, state_key.to_owned()); | ||||
|                 if !auth_types.contains(&key) { | ||||
|                     auth_types.push(key); | ||||
|                 } | ||||
| 
 | ||||
|                 if membership == MembershipState::Invite { | ||||
|                     if let Some(Ok(t_id)) = content.third_party_invite.map(|t| t.deserialize()) { | ||||
|                         let key = (EventType::RoomThirdPartyInvite, t_id.signed.token); | ||||
|                         let key = (RoomEventType::RoomThirdPartyInvite, t_id.signed.token); | ||||
|                         if !auth_types.contains(&key) { | ||||
|                             auth_types.push(key); | ||||
|                         } | ||||
| @ -123,7 +123,7 @@ pub fn auth_check<E: Event>( | ||||
|     room_version: &RoomVersion, | ||||
|     incoming_event: impl Event, | ||||
|     current_third_party_invite: Option<impl Event>, | ||||
|     fetch_state: impl Fn(&EventType, &str) -> Option<E>, | ||||
|     fetch_state: impl Fn(&RoomEventType, &str) -> Option<E>, | ||||
| ) -> Result<bool> { | ||||
|     info!( | ||||
|         "auth_check beginning for {} ({})", | ||||
| @ -144,7 +144,7 @@ pub fn auth_check<E: Event>( | ||||
|     // Implementation of https://spec.matrix.org/v1.2/rooms/v1/#authorization-rules
 | ||||
|     //
 | ||||
|     // 1. If type is m.room.create:
 | ||||
|     if *incoming_event.event_type() == EventType::RoomCreate { | ||||
|     if *incoming_event.event_type() == RoomEventType::RoomCreate { | ||||
|         #[derive(Deserialize)] | ||||
|         struct RoomCreateContentFields { | ||||
|             room_version: Option<Raw<RoomVersionId>>, | ||||
| @ -208,7 +208,7 @@ pub fn auth_check<E: Event>( | ||||
|     } | ||||
|     */ | ||||
| 
 | ||||
|     let room_create_event = match fetch_state(&EventType::RoomCreate, "") { | ||||
|     let room_create_event = match fetch_state(&RoomEventType::RoomCreate, "") { | ||||
|         None => { | ||||
|             warn!("no m.room.create event in auth chain"); | ||||
|             return Ok(false); | ||||
| @ -228,7 +228,7 @@ pub fn auth_check<E: Event>( | ||||
|     // Only in some room versions 6 and below
 | ||||
|     if room_version.special_case_aliases_auth { | ||||
|         // 4. If type is m.room.aliases
 | ||||
|         if *incoming_event.event_type() == EventType::RoomAliases { | ||||
|         if *incoming_event.event_type() == RoomEventType::RoomAliases { | ||||
|             info!("starting m.room.aliases check"); | ||||
| 
 | ||||
|             // If sender's domain doesn't matches state_key, reject
 | ||||
| @ -243,10 +243,10 @@ pub fn auth_check<E: Event>( | ||||
|     } | ||||
| 
 | ||||
|     // If type is m.room.member
 | ||||
|     let power_levels_event = fetch_state(&EventType::RoomPowerLevels, ""); | ||||
|     let sender_member_event = fetch_state(&EventType::RoomMember, sender.as_str()); | ||||
|     let power_levels_event = fetch_state(&RoomEventType::RoomPowerLevels, ""); | ||||
|     let sender_member_event = fetch_state(&RoomEventType::RoomMember, sender.as_str()); | ||||
| 
 | ||||
|     if *incoming_event.event_type() == EventType::RoomMember { | ||||
|     if *incoming_event.event_type() == RoomEventType::RoomMember { | ||||
|         info!("starting m.room.member check"); | ||||
|         let state_key = match incoming_event.state_key() { | ||||
|             None => { | ||||
| @ -270,7 +270,7 @@ pub fn auth_check<E: Event>( | ||||
| 
 | ||||
|         let user_for_join_auth_membership = user_for_join_auth | ||||
|             .as_ref() | ||||
|             .and_then(|auth_user| fetch_state(&EventType::RoomMember, auth_user.as_str())) | ||||
|             .and_then(|auth_user| fetch_state(&RoomEventType::RoomMember, auth_user.as_str())) | ||||
|             .and_then(|mem| from_json_str::<GetMembership>(mem.content().get()).ok()) | ||||
|             .map(|mem| mem.membership) | ||||
|             .unwrap_or(MembershipState::Leave); | ||||
| @ -278,13 +278,13 @@ pub fn auth_check<E: Event>( | ||||
|         if !valid_membership_change( | ||||
|             room_version, | ||||
|             target_user, | ||||
|             fetch_state(&EventType::RoomMember, target_user.as_str()).as_ref(), | ||||
|             fetch_state(&RoomEventType::RoomMember, target_user.as_str()).as_ref(), | ||||
|             sender, | ||||
|             sender_member_event.as_ref(), | ||||
|             &incoming_event, | ||||
|             current_third_party_invite, | ||||
|             power_levels_event.as_ref(), | ||||
|             fetch_state(&EventType::RoomJoinRules, "").as_ref(), | ||||
|             fetch_state(&RoomEventType::RoomJoinRules, "").as_ref(), | ||||
|             user_for_join_auth.as_deref(), | ||||
|             &user_for_join_auth_membership, | ||||
|             room_create_event, | ||||
| @ -338,7 +338,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.event_type() == EventType::RoomThirdPartyInvite { | ||||
|     if *incoming_event.event_type() == RoomEventType::RoomThirdPartyInvite { | ||||
|         let invite_level = match &power_levels_event { | ||||
|             Some(power_levels) => { | ||||
|                 from_json_str::<PowerLevelsContentInvite>(power_levels.content().get())?.invite | ||||
| @ -360,7 +360,7 @@ pub fn auth_check<E: Event>( | ||||
|     } | ||||
| 
 | ||||
|     // If type is m.room.power_levels
 | ||||
|     if *incoming_event.event_type() == EventType::RoomPowerLevels { | ||||
|     if *incoming_event.event_type() == RoomEventType::RoomPowerLevels { | ||||
|         info!("starting m.room.power_levels check"); | ||||
| 
 | ||||
|         if let Some(required_pwr_lvl) = check_power_levels( | ||||
| @ -388,7 +388,7 @@ pub fn auth_check<E: Event>( | ||||
|     // power levels.
 | ||||
| 
 | ||||
|     if room_version.extra_redaction_checks | ||||
|         && *incoming_event.event_type() == EventType::RoomRedaction | ||||
|         && *incoming_event.event_type() == RoomEventType::RoomRedaction | ||||
|     { | ||||
|         #[derive(Deserialize)] | ||||
|         struct PowerLevelsContentRedact { | ||||
| @ -762,7 +762,6 @@ fn check_power_levels( | ||||
|     let old_list = ¤t_content.events; | ||||
|     let new_list = &user_content.events; | ||||
|     for ev_id in old_list.keys().chain(new_list.keys()) { | ||||
|         let ev_id: &EventType = ev_id; | ||||
|         event_levels_to_check.insert(ev_id); | ||||
|     } | ||||
| 
 | ||||
| @ -889,7 +888,7 @@ fn check_redaction( | ||||
| /// Helper function to fetch the power level needed to send an event of type
 | ||||
| /// `e_type` based on the rooms "m.room.power_level" event.
 | ||||
| fn get_send_level( | ||||
|     e_type: &EventType, | ||||
|     e_type: &RoomEventType, | ||||
|     state_key: Option<&str>, | ||||
|     power_lvl: Option<impl Event>, | ||||
| ) -> Int { | ||||
| @ -975,7 +974,7 @@ mod tests { | ||||
|             }, | ||||
|             member::{MembershipState, RoomMemberEventContent}, | ||||
|         }, | ||||
|         EventType, | ||||
|         RoomEventType, | ||||
|     }; | ||||
|     use serde_json::value::to_raw_value as to_raw_json_value; | ||||
| 
 | ||||
| @ -1004,7 +1003,7 @@ mod tests { | ||||
|         let requester = to_pdu_event( | ||||
|             "HELLO", | ||||
|             alice(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(charlie().as_str()), | ||||
|             member_content_ban(), | ||||
|             &[], | ||||
| @ -1018,16 +1017,16 @@ mod tests { | ||||
|         assert!(valid_membership_change( | ||||
|             &RoomVersion::V6, | ||||
|             &target_user, | ||||
|             fetch_state(EventType::RoomMember, target_user.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, target_user.to_string()), | ||||
|             &sender, | ||||
|             fetch_state(EventType::RoomMember, sender.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, sender.to_string()), | ||||
|             &requester, | ||||
|             None::<StateEvent>, | ||||
|             fetch_state(EventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(EventType::RoomJoinRules, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomJoinRules, "".to_owned()), | ||||
|             None, | ||||
|             &MembershipState::Leave, | ||||
|             fetch_state(EventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|             fetch_state(RoomEventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|         ) | ||||
|         .unwrap()); | ||||
|     } | ||||
| @ -1048,7 +1047,7 @@ mod tests { | ||||
|         let requester = to_pdu_event( | ||||
|             "HELLO", | ||||
|             charlie(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(charlie().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE"], | ||||
| @ -1062,16 +1061,16 @@ mod tests { | ||||
|         assert!(!valid_membership_change( | ||||
|             &RoomVersion::V6, | ||||
|             &target_user, | ||||
|             fetch_state(EventType::RoomMember, target_user.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, target_user.to_string()), | ||||
|             &sender, | ||||
|             fetch_state(EventType::RoomMember, sender.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, sender.to_string()), | ||||
|             &requester, | ||||
|             None::<StateEvent>, | ||||
|             fetch_state(EventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(EventType::RoomJoinRules, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomJoinRules, "".to_owned()), | ||||
|             None, | ||||
|             &MembershipState::Leave, | ||||
|             fetch_state(EventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|             fetch_state(RoomEventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|         ) | ||||
|         .unwrap()); | ||||
|     } | ||||
| @ -1092,7 +1091,7 @@ mod tests { | ||||
|         let requester = to_pdu_event( | ||||
|             "HELLO", | ||||
|             alice(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(alice().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE"], | ||||
| @ -1106,16 +1105,16 @@ mod tests { | ||||
|         assert!(valid_membership_change( | ||||
|             &RoomVersion::V6, | ||||
|             &target_user, | ||||
|             fetch_state(EventType::RoomMember, target_user.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, target_user.to_string()), | ||||
|             &sender, | ||||
|             fetch_state(EventType::RoomMember, sender.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, sender.to_string()), | ||||
|             &requester, | ||||
|             None::<StateEvent>, | ||||
|             fetch_state(EventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(EventType::RoomJoinRules, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomJoinRules, "".to_owned()), | ||||
|             None, | ||||
|             &MembershipState::Leave, | ||||
|             fetch_state(EventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|             fetch_state(RoomEventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|         ) | ||||
|         .unwrap()); | ||||
|     } | ||||
| @ -1136,7 +1135,7 @@ mod tests { | ||||
|         let requester = to_pdu_event( | ||||
|             "HELLO", | ||||
|             charlie(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(alice().as_str()), | ||||
|             member_content_ban(), | ||||
|             &[], | ||||
| @ -1150,16 +1149,16 @@ mod tests { | ||||
|         assert!(!valid_membership_change( | ||||
|             &RoomVersion::V6, | ||||
|             &target_user, | ||||
|             fetch_state(EventType::RoomMember, target_user.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, target_user.to_string()), | ||||
|             &sender, | ||||
|             fetch_state(EventType::RoomMember, sender.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, sender.to_string()), | ||||
|             &requester, | ||||
|             None::<StateEvent>, | ||||
|             fetch_state(EventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(EventType::RoomJoinRules, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomJoinRules, "".to_owned()), | ||||
|             None, | ||||
|             &MembershipState::Leave, | ||||
|             fetch_state(EventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|             fetch_state(RoomEventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|         ) | ||||
|         .unwrap()); | ||||
|     } | ||||
| @ -1172,7 +1171,7 @@ mod tests { | ||||
|         *events.get_mut(&event_id("IJR")).unwrap() = to_pdu_event( | ||||
|             "IJR", | ||||
|             alice(), | ||||
|             EventType::RoomJoinRules, | ||||
|             RoomEventType::RoomJoinRules, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&RoomJoinRulesEventContent::new(JoinRule::Restricted( | ||||
|                 Restricted::new(vec![AllowRule::RoomMembership(RoomMembership::new( | ||||
| @ -1197,7 +1196,7 @@ mod tests { | ||||
|         let requester = to_pdu_event( | ||||
|             "HELLO", | ||||
|             ella(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(ella().as_str()), | ||||
|             to_raw_json_value(&RoomMemberEventContent::new(MembershipState::Join)).unwrap(), | ||||
|             &["CREATE", "IJR", "IPOWER", "new"], | ||||
| @ -1211,32 +1210,32 @@ mod tests { | ||||
|         assert!(valid_membership_change( | ||||
|             &RoomVersion::V9, | ||||
|             &target_user, | ||||
|             fetch_state(EventType::RoomMember, target_user.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, target_user.to_string()), | ||||
|             &sender, | ||||
|             fetch_state(EventType::RoomMember, sender.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, sender.to_string()), | ||||
|             &requester, | ||||
|             None::<StateEvent>, | ||||
|             fetch_state(EventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(EventType::RoomJoinRules, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomJoinRules, "".to_owned()), | ||||
|             Some(&alice()), | ||||
|             &MembershipState::Join, | ||||
|             fetch_state(EventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|             fetch_state(RoomEventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|         ) | ||||
|         .unwrap()); | ||||
| 
 | ||||
|         assert!(!valid_membership_change( | ||||
|             &RoomVersion::V9, | ||||
|             &target_user, | ||||
|             fetch_state(EventType::RoomMember, target_user.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, target_user.to_string()), | ||||
|             &sender, | ||||
|             fetch_state(EventType::RoomMember, sender.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, sender.to_string()), | ||||
|             &requester, | ||||
|             None::<StateEvent>, | ||||
|             fetch_state(EventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(EventType::RoomJoinRules, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomJoinRules, "".to_owned()), | ||||
|             Some(&ella()), | ||||
|             &MembershipState::Leave, | ||||
|             fetch_state(EventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|             fetch_state(RoomEventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|         ) | ||||
|         .unwrap()); | ||||
|     } | ||||
| @ -1249,7 +1248,7 @@ mod tests { | ||||
|         *events.get_mut(&event_id("IJR")).unwrap() = to_pdu_event( | ||||
|             "IJR", | ||||
|             alice(), | ||||
|             EventType::RoomJoinRules, | ||||
|             RoomEventType::RoomJoinRules, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&RoomJoinRulesEventContent::new(JoinRule::Knock)).unwrap(), | ||||
|             &["CREATE", "IMA", "IPOWER"], | ||||
| @ -1266,7 +1265,7 @@ mod tests { | ||||
|         let requester = to_pdu_event( | ||||
|             "HELLO", | ||||
|             ella(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(ella().as_str()), | ||||
|             to_raw_json_value(&RoomMemberEventContent::new(MembershipState::Knock)).unwrap(), | ||||
|             &[], | ||||
| @ -1280,16 +1279,16 @@ mod tests { | ||||
|         assert!(valid_membership_change( | ||||
|             &RoomVersion::V7, | ||||
|             &target_user, | ||||
|             fetch_state(EventType::RoomMember, target_user.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, target_user.to_string()), | ||||
|             &sender, | ||||
|             fetch_state(EventType::RoomMember, sender.to_string()), | ||||
|             fetch_state(RoomEventType::RoomMember, sender.to_string()), | ||||
|             &requester, | ||||
|             None::<StateEvent>, | ||||
|             fetch_state(EventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(EventType::RoomJoinRules, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomPowerLevels, "".to_owned()), | ||||
|             fetch_state(RoomEventType::RoomJoinRules, "".to_owned()), | ||||
|             None, | ||||
|             &MembershipState::Leave, | ||||
|             fetch_state(EventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|             fetch_state(RoomEventType::RoomCreate, "".to_owned()).unwrap(), | ||||
|         ) | ||||
|         .unwrap()); | ||||
|     } | ||||
|  | ||||
| @ -10,7 +10,7 @@ use js_int::{int, Int}; | ||||
| use ruma_common::{ | ||||
|     events::{ | ||||
|         room::member::{MembershipState, RoomMemberEventContent}, | ||||
|         EventType, | ||||
|         RoomEventType, | ||||
|     }, | ||||
|     EventId, MilliSecondsSinceUnixEpoch, RoomVersionId, UserId, | ||||
| }; | ||||
| @ -31,7 +31,7 @@ pub use room_version::RoomVersion; | ||||
| pub use state_event::Event; | ||||
| 
 | ||||
| /// A mapping of event type and state_key to some value `T`, usually an `EventId`.
 | ||||
| pub type StateMap<T> = HashMap<(EventType, String), T>; | ||||
| pub type StateMap<T> = HashMap<(RoomEventType, String), T>; | ||||
| 
 | ||||
| /// Resolve sets of state events as they come in.
 | ||||
| ///
 | ||||
| @ -132,7 +132,7 @@ where | ||||
|     trace!("{:?}", events_to_resolve); | ||||
| 
 | ||||
|     // This "epochs" power level event
 | ||||
|     let power_event = resolved_control.get(&(EventType::RoomPowerLevels, "".into())); | ||||
|     let power_event = resolved_control.get(&(RoomEventType::RoomPowerLevels, "".into())); | ||||
| 
 | ||||
|     debug!("power event: {:?}", power_event); | ||||
| 
 | ||||
| @ -368,7 +368,7 @@ fn get_power_level_for_sender<E: Event>( | ||||
| 
 | ||||
|     for aid in event.as_ref().map(|pdu| pdu.auth_events()).into_iter().flatten() { | ||||
|         if let Some(aev) = fetch_event(aid.borrow()) { | ||||
|             if is_type_and_key(&aev, &EventType::RoomPowerLevels, "") { | ||||
|             if is_type_and_key(&aev, &RoomEventType::RoomPowerLevels, "") { | ||||
|                 pl = Some(aev); | ||||
|                 break; | ||||
|             } | ||||
| @ -458,7 +458,7 @@ fn iterative_auth_check<E: Event + Clone>( | ||||
|         // The key for this is (eventType + a state_key of the signed token not sender) so
 | ||||
|         // search for it
 | ||||
|         let current_third_party = auth_events.iter().find_map(|(_, pdu)| { | ||||
|             (*pdu.event_type() == EventType::RoomThirdPartyInvite).then(|| pdu) | ||||
|             (*pdu.event_type() == RoomEventType::RoomThirdPartyInvite).then(|| pdu) | ||||
|         }); | ||||
| 
 | ||||
|         if auth_check(room_version, &event, current_third_party, |ty, key| { | ||||
| @ -509,7 +509,7 @@ fn mainline_sort<E: Event>( | ||||
|         for aid in event.auth_events() { | ||||
|             let ev = fetch_event(aid.borrow()) | ||||
|                 .ok_or_else(|| Error::NotFound(format!("Failed to find {}", aid)))?; | ||||
|             if is_type_and_key(&ev, &EventType::RoomPowerLevels, "") { | ||||
|             if is_type_and_key(&ev, &RoomEventType::RoomPowerLevels, "") { | ||||
|                 pl = Some(aid.to_owned()); | ||||
|                 break; | ||||
|             } | ||||
| @ -568,7 +568,7 @@ fn get_mainline_depth<E: Event>( | ||||
|         for aid in sort_ev.auth_events() { | ||||
|             let aev = fetch_event(aid.borrow()) | ||||
|                 .ok_or_else(|| Error::NotFound(format!("Failed to find {}", aid)))?; | ||||
|             if is_type_and_key(&aev, &EventType::RoomPowerLevels, "") { | ||||
|             if is_type_and_key(&aev, &RoomEventType::RoomPowerLevels, "") { | ||||
|                 event = Some(aev); | ||||
|                 break; | ||||
|             } | ||||
| @ -610,16 +610,16 @@ fn is_power_event_id<E: Event>(event_id: &EventId, fetch: impl Fn(&EventId) -> O | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| fn is_type_and_key(ev: impl Event, ev_type: &EventType, state_key: &str) -> bool { | ||||
| fn is_type_and_key(ev: impl Event, ev_type: &RoomEventType, state_key: &str) -> bool { | ||||
|     ev.event_type() == ev_type && ev.state_key() == Some(state_key) | ||||
| } | ||||
| 
 | ||||
| fn is_power_event(event: impl Event) -> bool { | ||||
|     match event.event_type() { | ||||
|         EventType::RoomPowerLevels | EventType::RoomJoinRules | EventType::RoomCreate => { | ||||
|             event.state_key() == Some("") | ||||
|         } | ||||
|         EventType::RoomMember => { | ||||
|         RoomEventType::RoomPowerLevels | ||||
|         | RoomEventType::RoomJoinRules | ||||
|         | RoomEventType::RoomCreate => event.state_key() == Some(""), | ||||
|         RoomEventType::RoomMember => { | ||||
|             if let Ok(content) = from_json_str::<RoomMemberEventContent>(event.content().get()) { | ||||
|                 if [MembershipState::Leave, MembershipState::Ban].contains(&content.membership) { | ||||
|                     return Some(event.sender().as_str()) != event.state_key(); | ||||
| @ -645,7 +645,7 @@ mod tests { | ||||
|     use ruma_common::{ | ||||
|         events::{ | ||||
|             room::join_rules::{JoinRule, RoomJoinRulesEventContent}, | ||||
|             EventType, | ||||
|             RoomEventType, | ||||
|         }, | ||||
|         EventId, MilliSecondsSinceUnixEpoch, RoomVersionId, | ||||
|     }; | ||||
| @ -701,7 +701,8 @@ mod tests { | ||||
| 
 | ||||
|         events_to_sort.shuffle(&mut rand::thread_rng()); | ||||
| 
 | ||||
|         let power_level = resolved_power.get(&(EventType::RoomPowerLevels, "".to_owned())).cloned(); | ||||
|         let power_level = | ||||
|             resolved_power.get(&(RoomEventType::RoomPowerLevels, "".to_owned())).cloned(); | ||||
| 
 | ||||
|         let sorted_event_ids = | ||||
|             crate::mainline_sort(&events_to_sort, power_level, |id| events.get(id).map(Arc::clone)) | ||||
| @ -740,28 +741,28 @@ mod tests { | ||||
|             to_init_pdu_event( | ||||
|                 "PA", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "MA", | ||||
|                 alice(), | ||||
|                 EventType::RoomMember, | ||||
|                 RoomEventType::RoomMember, | ||||
|                 Some(alice().to_string().as_str()), | ||||
|                 member_content_join(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "MB", | ||||
|                 alice(), | ||||
|                 EventType::RoomMember, | ||||
|                 RoomEventType::RoomMember, | ||||
|                 Some(bob().to_string().as_str()), | ||||
|                 member_content_ban(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PB", | ||||
|                 bob(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             ), | ||||
| @ -787,42 +788,42 @@ mod tests { | ||||
|             to_init_pdu_event( | ||||
|                 "T1", | ||||
|                 alice(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PA1", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "T2", | ||||
|                 alice(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PA2", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 0 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PB", | ||||
|                 bob(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "T3", | ||||
|                 bob(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
| @ -848,28 +849,28 @@ mod tests { | ||||
|             to_init_pdu_event( | ||||
|                 "T1", | ||||
|                 alice(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PA", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "T2", | ||||
|                 bob(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "MB", | ||||
|                 alice(), | ||||
|                 EventType::RoomMember, | ||||
|                 RoomEventType::RoomMember, | ||||
|                 Some(bob().to_string().as_str()), | ||||
|                 member_content_ban(), | ||||
|             ), | ||||
| @ -895,14 +896,14 @@ mod tests { | ||||
|             to_init_pdu_event( | ||||
|                 "JR", | ||||
|                 alice(), | ||||
|                 EventType::RoomJoinRules, | ||||
|                 RoomEventType::RoomJoinRules, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&RoomJoinRulesEventContent::new(JoinRule::Private)).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "ME", | ||||
|                 ella(), | ||||
|                 EventType::RoomMember, | ||||
|                 RoomEventType::RoomMember, | ||||
|                 Some(ella().to_string().as_str()), | ||||
|                 member_content_join(), | ||||
|             ), | ||||
| @ -927,14 +928,14 @@ mod tests { | ||||
|             to_init_pdu_event( | ||||
|                 "PA", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PB", | ||||
|                 bob(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50, charlie(): 50 } })) | ||||
|                     .unwrap(), | ||||
| @ -942,7 +943,7 @@ mod tests { | ||||
|             to_init_pdu_event( | ||||
|                 "PC", | ||||
|                 charlie(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50, charlie(): 0 } })) | ||||
|                     .unwrap(), | ||||
| @ -968,56 +969,56 @@ mod tests { | ||||
|             to_init_pdu_event( | ||||
|                 "T1", | ||||
|                 alice(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PA1", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "T2", | ||||
|                 alice(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PA2", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 0 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "PB", | ||||
|                 bob(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "T3", | ||||
|                 bob(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "MZ1", | ||||
|                 zara(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
|             to_init_pdu_event( | ||||
|                 "T4", | ||||
|                 alice(), | ||||
|                 EventType::RoomTopic, | ||||
|                 RoomEventType::RoomTopic, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({})).unwrap(), | ||||
|             ), | ||||
| @ -1212,7 +1213,7 @@ mod tests { | ||||
|             to_pdu_event( | ||||
|                 "PA", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|                 &["CREATE", "IMA", "IPOWER"], // auth_events
 | ||||
| @ -1221,7 +1222,7 @@ mod tests { | ||||
|             to_pdu_event( | ||||
|                 "PB", | ||||
|                 alice(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "users": { alice(): 100, bob(): 50 } })).unwrap(), | ||||
|                 &["CREATE", "IMA", "IPOWER"], | ||||
| @ -1230,7 +1231,7 @@ mod tests { | ||||
|             to_pdu_event( | ||||
|                 "MB", | ||||
|                 alice(), | ||||
|                 EventType::RoomMember, | ||||
|                 RoomEventType::RoomMember, | ||||
|                 Some(ella().as_str()), | ||||
|                 member_content_ban(), | ||||
|                 &["CREATE", "IMA", "PB"], | ||||
| @ -1239,7 +1240,7 @@ mod tests { | ||||
|             to_pdu_event( | ||||
|                 "IME", | ||||
|                 ella(), | ||||
|                 EventType::RoomMember, | ||||
|                 RoomEventType::RoomMember, | ||||
|                 Some(ella().as_str()), | ||||
|                 member_content_join(), | ||||
|                 &["CREATE", "IJR", "PA"], | ||||
| @ -1257,7 +1258,7 @@ mod tests { | ||||
|             to_pdu_event( | ||||
|                 "JR", | ||||
|                 alice(), | ||||
|                 EventType::RoomJoinRules, | ||||
|                 RoomEventType::RoomJoinRules, | ||||
|                 Some(""), | ||||
|                 to_raw_json_value(&json!({ "join_rule": "invite" })).unwrap(), | ||||
|                 &["CREATE", "IMA", "IPOWER"], | ||||
| @ -1266,7 +1267,7 @@ mod tests { | ||||
|             to_pdu_event( | ||||
|                 "IMZ", | ||||
|                 zara(), | ||||
|                 EventType::RoomPowerLevels, | ||||
|                 RoomEventType::RoomPowerLevels, | ||||
|                 Some(zara().as_str()), | ||||
|                 member_content_join(), | ||||
|                 &["CREATE", "JR", "IPOWER"], | ||||
|  | ||||
| @ -5,7 +5,7 @@ use std::{ | ||||
|     sync::Arc, | ||||
| }; | ||||
| 
 | ||||
| use ruma_common::{events::EventType, EventId, MilliSecondsSinceUnixEpoch, RoomId, UserId}; | ||||
| use ruma_common::{events::RoomEventType, EventId, MilliSecondsSinceUnixEpoch, RoomId, UserId}; | ||||
| use serde_json::value::RawValue as RawJsonValue; | ||||
| 
 | ||||
| /// Abstraction of a PDU so users can have their own PDU types.
 | ||||
| @ -25,7 +25,7 @@ pub trait Event { | ||||
|     fn origin_server_ts(&self) -> MilliSecondsSinceUnixEpoch; | ||||
| 
 | ||||
|     /// The event type.
 | ||||
|     fn event_type(&self) -> &EventType; | ||||
|     fn event_type(&self) -> &RoomEventType; | ||||
| 
 | ||||
|     /// The event's content.
 | ||||
|     fn content(&self) -> &RawJsonValue; | ||||
| @ -64,7 +64,7 @@ impl<T: Event> Event for &T { | ||||
|         (*self).origin_server_ts() | ||||
|     } | ||||
| 
 | ||||
|     fn event_type(&self) -> &EventType { | ||||
|     fn event_type(&self) -> &RoomEventType { | ||||
|         (*self).event_type() | ||||
|     } | ||||
| 
 | ||||
| @ -108,7 +108,7 @@ impl<T: Event> Event for Arc<T> { | ||||
|         (**self).origin_server_ts() | ||||
|     } | ||||
| 
 | ||||
|     fn event_type(&self) -> &EventType { | ||||
|     fn event_type(&self) -> &RoomEventType { | ||||
|         (**self).event_type() | ||||
|     } | ||||
| 
 | ||||
|  | ||||
| @ -17,7 +17,7 @@ use ruma_common::{ | ||||
|             join_rules::{JoinRule, RoomJoinRulesEventContent}, | ||||
|             member::{MembershipState, RoomMemberEventContent}, | ||||
|         }, | ||||
|         EventType, | ||||
|         RoomEventType, | ||||
|     }, | ||||
|     room_id, user_id, EventId, MilliSecondsSinceUnixEpoch, RoomId, RoomVersionId, UserId, | ||||
| }; | ||||
| @ -198,7 +198,7 @@ pub fn do_check( | ||||
|                 // Filter out the dummy messages events.
 | ||||
|                 // These act as points in time where there should be a known state to
 | ||||
|                 // test against.
 | ||||
|                 && **k != (EventType::RoomMessage, "dummy".to_owned()) | ||||
|                 && **k != (RoomEventType::RoomMessage, "dummy".to_owned()) | ||||
|         }) | ||||
|         .map(|(k, v)| (k.clone(), v.clone())) | ||||
|         .collect::<StateMap<Box<EventId>>>(); | ||||
| @ -252,7 +252,7 @@ impl TestStore<StateEvent> { | ||||
|         let create_event = to_pdu_event::<&EventId>( | ||||
|             "CREATE", | ||||
|             alice(), | ||||
|             EventType::RoomCreate, | ||||
|             RoomEventType::RoomCreate, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({ "creator": alice() })).unwrap(), | ||||
|             &[], | ||||
| @ -264,7 +264,7 @@ impl TestStore<StateEvent> { | ||||
|         let alice_mem = to_pdu_event( | ||||
|             "IMA", | ||||
|             alice(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(alice().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &[cre.clone()], | ||||
| @ -275,7 +275,7 @@ impl TestStore<StateEvent> { | ||||
|         let join_rules = to_pdu_event( | ||||
|             "IJR", | ||||
|             alice(), | ||||
|             EventType::RoomJoinRules, | ||||
|             RoomEventType::RoomJoinRules, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&RoomJoinRulesEventContent::new(JoinRule::Public)).unwrap(), | ||||
|             &[cre.clone(), alice_mem.event_id().to_owned()], | ||||
| @ -288,7 +288,7 @@ impl TestStore<StateEvent> { | ||||
|         let bob_mem = to_pdu_event( | ||||
|             "IMB", | ||||
|             bob(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(bob().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &[cre.clone(), join_rules.event_id().to_owned()], | ||||
| @ -299,7 +299,7 @@ impl TestStore<StateEvent> { | ||||
|         let charlie_mem = to_pdu_event( | ||||
|             "IMC", | ||||
|             charlie(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(charlie().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &[cre, join_rules.event_id().to_owned()], | ||||
| @ -384,7 +384,7 @@ pub fn member_content_join() -> Box<RawJsonValue> { | ||||
| pub fn to_init_pdu_event( | ||||
|     id: &str, | ||||
|     sender: Box<UserId>, | ||||
|     ev_type: EventType, | ||||
|     ev_type: RoomEventType, | ||||
|     state_key: Option<&str>, | ||||
|     content: Box<RawJsonValue>, | ||||
| ) -> Arc<StateEvent> { | ||||
| @ -417,7 +417,7 @@ pub fn to_init_pdu_event( | ||||
| pub fn to_pdu_event<S>( | ||||
|     id: &str, | ||||
|     sender: Box<UserId>, | ||||
|     ev_type: EventType, | ||||
|     ev_type: RoomEventType, | ||||
|     state_key: Option<&str>, | ||||
|     content: Box<RawJsonValue>, | ||||
|     auth_events: &[S], | ||||
| @ -461,7 +461,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event::<&EventId>( | ||||
|             "CREATE", | ||||
|             alice(), | ||||
|             EventType::RoomCreate, | ||||
|             RoomEventType::RoomCreate, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({ "creator": alice() })).unwrap(), | ||||
|             &[], | ||||
| @ -470,7 +470,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IMA", | ||||
|             alice(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(alice().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE"], | ||||
| @ -479,7 +479,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IPOWER", | ||||
|             alice(), | ||||
|             EventType::RoomPowerLevels, | ||||
|             RoomEventType::RoomPowerLevels, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&json!({ "users": { alice().to_string(): 100 } })).unwrap(), | ||||
|             &["CREATE", "IMA"], | ||||
| @ -488,7 +488,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IJR", | ||||
|             alice(), | ||||
|             EventType::RoomJoinRules, | ||||
|             RoomEventType::RoomJoinRules, | ||||
|             Some(""), | ||||
|             to_raw_json_value(&RoomJoinRulesEventContent::new(JoinRule::Public)).unwrap(), | ||||
|             &["CREATE", "IMA", "IPOWER"], | ||||
| @ -497,7 +497,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IMB", | ||||
|             bob(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(bob().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE", "IJR", "IPOWER"], | ||||
| @ -506,7 +506,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event( | ||||
|             "IMC", | ||||
|             charlie(), | ||||
|             EventType::RoomMember, | ||||
|             RoomEventType::RoomMember, | ||||
|             Some(charlie().to_string().as_str()), | ||||
|             member_content_join(), | ||||
|             &["CREATE", "IJR", "IPOWER"], | ||||
| @ -515,7 +515,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event::<&EventId>( | ||||
|             "START", | ||||
|             charlie(), | ||||
|             EventType::RoomMessage, | ||||
|             RoomEventType::RoomMessage, | ||||
|             Some("dummy"), | ||||
|             to_raw_json_value(&json!({})).unwrap(), | ||||
|             &[], | ||||
| @ -524,7 +524,7 @@ pub fn INITIAL_EVENTS() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|         to_pdu_event::<&EventId>( | ||||
|             "END", | ||||
|             charlie(), | ||||
|             EventType::RoomMessage, | ||||
|             RoomEventType::RoomMessage, | ||||
|             Some("dummy"), | ||||
|             to_raw_json_value(&json!({})).unwrap(), | ||||
|             &[], | ||||
| @ -542,7 +542,7 @@ pub fn INITIAL_EVENTS_CREATE_ROOM() -> HashMap<Box<EventId>, Arc<StateEvent>> { | ||||
|     vec![to_pdu_event::<&EventId>( | ||||
|         "CREATE", | ||||
|         alice(), | ||||
|         EventType::RoomCreate, | ||||
|         RoomEventType::RoomCreate, | ||||
|         Some(""), | ||||
|         to_raw_json_value(&json!({ "creator": alice() })).unwrap(), | ||||
|         &[], | ||||
| @ -563,7 +563,7 @@ pub fn INITIAL_EDGES() -> Vec<Box<EventId>> { | ||||
| 
 | ||||
| pub mod event { | ||||
|     use ruma_common::{ | ||||
|         events::{pdu::Pdu, EventType}, | ||||
|         events::{pdu::Pdu, RoomEventType}, | ||||
|         EventId, MilliSecondsSinceUnixEpoch, RoomId, UserId, | ||||
|     }; | ||||
|     use serde::{Deserialize, Serialize}; | ||||
| @ -596,7 +596,7 @@ pub mod event { | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         fn event_type(&self) -> &EventType { | ||||
|         fn event_type(&self) -> &RoomEventType { | ||||
|             match &self.rest { | ||||
|                 Pdu::RoomV1Pdu(ev) => &ev.kind, | ||||
|                 Pdu::RoomV3Pdu(ev) => &ev.kind, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user