From b21a6f2231935434d69875c5c9a1dc490ede87eb Mon Sep 17 00:00:00 2001 From: Paul Makles <paulmakles@gmail.com> Date: Wed, 8 Apr 2020 13:22:07 +0100 Subject: [PATCH] Commit working draft, for perms. --- src/database/guild.rs | 13 +------------ src/database/mod.rs | 3 +++ src/database/permissions.rs | 14 ++++++++++++++ src/routes/channel.rs | 2 +- src/websocket/mod.rs | 2 +- 5 files changed, 20 insertions(+), 14 deletions(-) create mode 100644 src/database/permissions.rs diff --git a/src/database/guild.rs b/src/database/guild.rs index 5414e44..0939d1b 100644 --- a/src/database/guild.rs +++ b/src/database/guild.rs @@ -1,20 +1,9 @@ use bson::{bson, doc}; use serde::{Deserialize, Serialize}; -use super::get_collection; +use super::{get_collection, MemberPermissions}; use mongodb::options::FindOneOptions; -bitfield! { - pub struct MemberPermissions(MSB0 [u8]); - u8; - pub get_access, set_access: 7; - pub get_create_invite, set_create_invite: 6; - pub get_kick_members, set_kick_members: 5; - pub get_ban_members, set_ban_members: 4; - pub get_read_messages, set_read_messages: 3; - pub get_send_messages, set_send_messages: 2; -} - pub fn find_member_permissions<C: Into<Option<String>>>( id: String, guild: String, diff --git a/src/database/mod.rs b/src/database/mod.rs index 6e9222f..91ad67a 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -24,7 +24,10 @@ pub fn get_collection(collection: &str) -> Collection { get_db().collection(collection) } +pub mod permissions; pub mod channel; pub mod guild; pub mod message; pub mod user; + +pub use permissions::*; diff --git a/src/database/permissions.rs b/src/database/permissions.rs new file mode 100644 index 0000000..d915cf6 --- /dev/null +++ b/src/database/permissions.rs @@ -0,0 +1,14 @@ +bitfield! { + pub struct MemberPermissions(MSB0 [u8]); + u8; + pub get_access, set_access: 7; + pub get_create_invite, set_create_invite: 6; + pub get_kick_members, set_kick_members: 5; + pub get_ban_members, set_ban_members: 4; + pub get_read_messages, set_read_messages: 3; + pub get_send_messages, set_send_messages: 2; +} + +//struct PermissionCalculator { + //channel: Option<>, +//} \ No newline at end of file diff --git a/src/routes/channel.rs b/src/routes/channel.rs index 1ed1adb..cd53de2 100644 --- a/src/routes/channel.rs +++ b/src/routes/channel.rs @@ -5,7 +5,7 @@ use crate::websocket; use bson::{bson, doc, from_bson, Bson::UtcDatetime}; use chrono::prelude::*; use num_enum::TryFromPrimitive; -use rocket_contrib::json::{Json, JsonValue}; +use rocket_contrib::json::Json; use serde::{Deserialize, Serialize}; use ulid::Ulid; diff --git a/src/websocket/mod.rs b/src/websocket/mod.rs index f162361..709c593 100644 --- a/src/websocket/mod.rs +++ b/src/websocket/mod.rs @@ -172,7 +172,7 @@ pub fn send_message(id: String, message: String) -> std::result::Result<(), ()> let arr = map.get(&id).unwrap(); for item in arr { - if let Err(_) = item.out.send(message.clone()) { + if item.out.send(message.clone()).is_err() { return Err(()); } } -- GitLab