Servers: New permissions implementation.

Feature: Roles and group permissions. (server-side)
This commit is contained in:
Paul
2021-06-26 22:16:37 +01:00
parent 35b0c69cdb
commit 07e74e1074
11 changed files with 195 additions and 35 deletions

View File

@@ -1,3 +1,5 @@
use std::collections::HashMap;
use crate::database::*;
use crate::util::result::{Error, Result};
@@ -76,6 +78,9 @@ pub async fn req(user: User, target: Ref, info: Json<Data>) -> Result<JsonValue>
description: info.description,
icon: None,
last_message: None,
default_permissions: None,
role_permissions: HashMap::new()
},
ChannelType::Voice => Channel::VoiceChannel {
id: id.clone(),
@@ -84,7 +89,10 @@ pub async fn req(user: User, target: Ref, info: Json<Data>) -> Result<JsonValue>
name: info.name,
description: info.description,
icon: None
icon: None,
default_permissions: None,
role_permissions: HashMap::new()
}
};

View File

@@ -1,3 +1,5 @@
use std::collections::HashMap;
use crate::database::*;
use crate::util::result::{Error, Result};
@@ -51,6 +53,7 @@ pub async fn req(user: User, info: Json<Data>) -> Result<JsonValue> {
name: info.name,
description: info.description,
channels: vec![cid.clone()],
system_messages: Some(SystemMessageChannels {
user_joined: Some(cid.clone()),
@@ -59,6 +62,12 @@ pub async fn req(user: User, info: Json<Data>) -> Result<JsonValue> {
user_banned: Some(cid.clone()),
}),
roles: HashMap::new(),
default_permissions: (
*permissions::server::DEFAULT_PERMISSION as i32,
*permissions::channel::DEFAULT_PERMISSION_SERVER as i32
),
icon: None,
banner: None,
};
@@ -69,8 +78,12 @@ pub async fn req(user: User, info: Json<Data>) -> Result<JsonValue> {
nonce: Some(info.nonce),
name: "general".to_string(),
description: None,
icon: None,
last_message: None,
default_permissions: None,
role_permissions: HashMap::new()
}
.publish()
.await?;