mirror of
https://github.com/stoatchat/stoatchat.git
synced 2026-07-14 21:47:02 +00:00
Block voice calls in saved messages channel.
Add messages for desc / icon change for group chats.
This commit is contained in:
@@ -30,6 +30,10 @@ pub enum SystemMessage {
|
||||
UserLeft { id: String },
|
||||
#[serde(rename = "channel_renamed")]
|
||||
ChannelRenamed { name: String, by: String },
|
||||
#[serde(rename = "channel_description_changed")]
|
||||
ChannelDescriptionChanged { by: String },
|
||||
#[serde(rename = "channel_icon_changed")]
|
||||
ChannelIconChanged { by: String },
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||
|
||||
@@ -40,7 +40,7 @@ impl<'a> PermissionCalculator<'a> {
|
||||
match channel {
|
||||
Channel::SavedMessages { user: owner, .. } => {
|
||||
if &self.perspective.id == owner {
|
||||
Ok(u32::MAX)
|
||||
Ok(u32::MAX - ChannelPermission::VoiceCall as u32)
|
||||
} else {
|
||||
Ok(0)
|
||||
}
|
||||
|
||||
@@ -111,7 +111,29 @@ pub async fn req(user: User, target: Ref, data: Json<Data>) -> Result<()> {
|
||||
Message::create(
|
||||
"00000000000000000000000000".to_string(),
|
||||
id.clone(),
|
||||
Content::SystemMessage(SystemMessage::ChannelRenamed { name, by: user.id }),
|
||||
Content::SystemMessage(SystemMessage::ChannelRenamed { name, by: user.id.clone() }),
|
||||
)
|
||||
.publish(&target)
|
||||
.await
|
||||
.ok();
|
||||
}
|
||||
|
||||
if let Some(_) = data.description {
|
||||
Message::create(
|
||||
"00000000000000000000000000".to_string(),
|
||||
id.clone(),
|
||||
Content::SystemMessage(SystemMessage::ChannelDescriptionChanged { by: user.id.clone() }),
|
||||
)
|
||||
.publish(&target)
|
||||
.await
|
||||
.ok();
|
||||
}
|
||||
|
||||
if let Some(_) = data.icon {
|
||||
Message::create(
|
||||
"00000000000000000000000000".to_string(),
|
||||
id.clone(),
|
||||
Content::SystemMessage(SystemMessage::ChannelIconChanged { by: user.id }),
|
||||
)
|
||||
.publish(&target)
|
||||
.await
|
||||
|
||||
Reference in New Issue
Block a user