forked from jmug/stoatchat
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 },
|
UserLeft { id: String },
|
||||||
#[serde(rename = "channel_renamed")]
|
#[serde(rename = "channel_renamed")]
|
||||||
ChannelRenamed { name: String, by: String },
|
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)]
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ impl<'a> PermissionCalculator<'a> {
|
|||||||
match channel {
|
match channel {
|
||||||
Channel::SavedMessages { user: owner, .. } => {
|
Channel::SavedMessages { user: owner, .. } => {
|
||||||
if &self.perspective.id == owner {
|
if &self.perspective.id == owner {
|
||||||
Ok(u32::MAX)
|
Ok(u32::MAX - ChannelPermission::VoiceCall as u32)
|
||||||
} else {
|
} else {
|
||||||
Ok(0)
|
Ok(0)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,7 +111,29 @@ pub async fn req(user: User, target: Ref, data: Json<Data>) -> Result<()> {
|
|||||||
Message::create(
|
Message::create(
|
||||||
"00000000000000000000000000".to_string(),
|
"00000000000000000000000000".to_string(),
|
||||||
id.clone(),
|
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)
|
.publish(&target)
|
||||||
.await
|
.await
|
||||||
|
|||||||
Reference in New Issue
Block a user