diff --git a/set_version.sh b/set_version.sh index aea91d854330d32997002f5205ba09239ea6c4df..4881d5162260a3f7fc50ae7e1d33c618c30db0f0 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 043799fe4eb6224c063c239f49979334ba585616..d110fa8a66c770ccd900855d3385c36aad7f65e3 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 8ca108643b2e7a53948dd0fa2cadef5ad10ed661..6062c645553f303e7f055caa03a1c86c1a75019d 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 86a54cb595de4363a36c8253492cc6118276fa32..4535a89378887aa852d889836da8714b6582a5d9 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;