diff --git a/set_version.sh b/set_version.sh index aea91d85..4881d516 100755 --- a/set_version.sh +++ b/set_version.sh @@ -1,3 +1,3 @@ #!/bin/bash -export version=0.5.0-alpha.1 +export version=0.5.0-alpha.2 echo "pub const VERSION: &str = \"${version}\";" > src/version.rs diff --git a/src/database/entities/channel.rs b/src/database/entities/channel.rs index 043799fe..d110fa8a 100644 --- a/src/database/entities/channel.rs +++ b/src/database/entities/channel.rs @@ -205,9 +205,15 @@ impl Channel { // Remove from server object. if let Channel::TextChannel { server, .. } = &self { let server = Ref::from_unchecked(server.clone()).fetch_server().await?; - let mut unset = doc! {}; + let mut update = doc! { + "$pull": { + "channels": id + } + }; if let Some(sys) = &server.system_messages { + let mut unset = doc! {}; + if let Some(cid) = &sys.user_joined { if id == cid { unset.insert("system_messages.user_joined", 1); @@ -231,6 +237,10 @@ impl Channel { unset.insert("system_messages.user_banned", 1); } } + + if unset.len() > 0 { + update.insert("$unset", unset); + } } get_collection("servers") @@ -238,12 +248,7 @@ impl Channel { doc! { "_id": server.id }, - doc! { - "$pull": { - "channels": id - }, - "$unset": unset - }, + update, None, ) .await diff --git a/src/database/permissions/server.rs b/src/database/permissions/server.rs index 8ca10864..6062c645 100644 --- a/src/database/permissions/server.rs +++ b/src/database/permissions/server.rs @@ -9,7 +9,7 @@ use std::ops; #[repr(u32)] pub enum ServerPermission { View = 0b00000000000000000000000000000001, // 1 - ManageMembers = 0b00000000000000000000000000000010, // 2 + ManageRoles = 0b00000000000000000000000000000010, // 2 ManageChannels = 0b00000000000000000000000000000100, // 4 ManageServer = 0b00000000000000000000000000001000, // 8 KickMembers = 0b00000000000000000000000000010000, // 16 diff --git a/src/notifications/subscriptions.rs b/src/notifications/subscriptions.rs index 86a54cb5..4535a893 100644 --- a/src/notifications/subscriptions.rs +++ b/src/notifications/subscriptions.rs @@ -1,5 +1,4 @@ use crate::database::*; -use crate::util::result::Error; use super::hive::get_hive; use futures::StreamExt;