Enable support in power level events for old Synapse events with strings
This commit is contained in:
parent
872701dc83
commit
d16fd4b2c1
@ -17,6 +17,10 @@ pub type PowerLevelsEvent = StateEvent<PowerLevelsEventContent>;
|
|||||||
#[ruma_event(type = "m.room.power_levels")]
|
#[ruma_event(type = "m.room.power_levels")]
|
||||||
pub struct PowerLevelsEventContent {
|
pub struct PowerLevelsEventContent {
|
||||||
/// The level required to ban a user.
|
/// The level required to ban a user.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::int_or_string_to_int")
|
||||||
|
)]
|
||||||
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
||||||
#[ruma_event(skip_redaction)]
|
#[ruma_event(skip_redaction)]
|
||||||
pub ban: Int,
|
pub ban: Int,
|
||||||
@ -24,30 +28,54 @@ pub struct PowerLevelsEventContent {
|
|||||||
/// The level required to send specific event types.
|
/// The level required to send specific event types.
|
||||||
///
|
///
|
||||||
/// This is a mapping from event type to power level required.
|
/// This is a mapping from event type to power level required.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::btreemap_int_or_string_to_int_values")
|
||||||
|
)]
|
||||||
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
||||||
#[ruma_event(skip_redaction)]
|
#[ruma_event(skip_redaction)]
|
||||||
pub events: BTreeMap<EventType, Int>,
|
pub events: BTreeMap<EventType, Int>,
|
||||||
|
|
||||||
/// The default level required to send message events.
|
/// The default level required to send message events.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::int_or_string_to_int")
|
||||||
|
)]
|
||||||
#[serde(default, skip_serializing_if = "ruma_serde::is_default")]
|
#[serde(default, skip_serializing_if = "ruma_serde::is_default")]
|
||||||
#[ruma_event(skip_redaction)]
|
#[ruma_event(skip_redaction)]
|
||||||
pub events_default: Int,
|
pub events_default: Int,
|
||||||
|
|
||||||
/// The level required to invite a user.
|
/// The level required to invite a user.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::int_or_string_to_int")
|
||||||
|
)]
|
||||||
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
||||||
pub invite: Int,
|
pub invite: Int,
|
||||||
|
|
||||||
/// The level required to kick a user.
|
/// The level required to kick a user.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::int_or_string_to_int")
|
||||||
|
)]
|
||||||
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
||||||
#[ruma_event(skip_redaction)]
|
#[ruma_event(skip_redaction)]
|
||||||
pub kick: Int,
|
pub kick: Int,
|
||||||
|
|
||||||
/// The level required to redact an event.
|
/// The level required to redact an event.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::int_or_string_to_int")
|
||||||
|
)]
|
||||||
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
||||||
#[ruma_event(skip_redaction)]
|
#[ruma_event(skip_redaction)]
|
||||||
pub redact: Int,
|
pub redact: Int,
|
||||||
|
|
||||||
/// The default level required to send state events.
|
/// The default level required to send state events.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::int_or_string_to_int")
|
||||||
|
)]
|
||||||
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
#[serde(default = "default_power_level", skip_serializing_if = "is_default_power_level")]
|
||||||
#[ruma_event(skip_redaction)]
|
#[ruma_event(skip_redaction)]
|
||||||
pub state_default: Int,
|
pub state_default: Int,
|
||||||
@ -55,11 +83,19 @@ pub struct PowerLevelsEventContent {
|
|||||||
/// The power levels for specific users.
|
/// The power levels for specific users.
|
||||||
///
|
///
|
||||||
/// This is a mapping from `user_id` to power level for that user.
|
/// This is a mapping from `user_id` to power level for that user.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::btreemap_int_or_string_to_int_values")
|
||||||
|
)]
|
||||||
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
#[serde(default, skip_serializing_if = "BTreeMap::is_empty")]
|
||||||
#[ruma_event(skip_redaction)]
|
#[ruma_event(skip_redaction)]
|
||||||
pub users: BTreeMap<UserId, Int>,
|
pub users: BTreeMap<UserId, Int>,
|
||||||
|
|
||||||
/// The default power level for every user in the room.
|
/// The default power level for every user in the room.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::int_or_string_to_int")
|
||||||
|
)]
|
||||||
#[serde(default, skip_serializing_if = "ruma_serde::is_default")]
|
#[serde(default, skip_serializing_if = "ruma_serde::is_default")]
|
||||||
#[ruma_event(skip_redaction)]
|
#[ruma_event(skip_redaction)]
|
||||||
pub users_default: Int,
|
pub users_default: Int,
|
||||||
@ -94,6 +130,10 @@ impl Default for PowerLevelsEventContent {
|
|||||||
#[derive(Clone, Copy, Debug, PartialEq, Deserialize, Serialize)]
|
#[derive(Clone, Copy, Debug, PartialEq, Deserialize, Serialize)]
|
||||||
pub struct NotificationPowerLevels {
|
pub struct NotificationPowerLevels {
|
||||||
/// The level required to trigger an `@room` notification.
|
/// The level required to trigger an `@room` notification.
|
||||||
|
#[cfg_attr(
|
||||||
|
feature = "unstable-synapse-quirks",
|
||||||
|
serde(deserialize_with = "ruma_serde::int_or_string_to_int")
|
||||||
|
)]
|
||||||
#[serde(default = "default_power_level")]
|
#[serde(default = "default_power_level")]
|
||||||
pub room: Int,
|
pub room: Int,
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user