forked from jmug/stoatchat
Commit working draft, for perms.
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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::*;
|
||||
|
||||
14
src/database/permissions.rs
Normal file
14
src/database/permissions.rs
Normal file
@@ -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<>,
|
||||
//}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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(());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user