forked from jmug/stoatchat
Fix: Permission PUT route priority.
This commit is contained in:
@@ -1,3 +1,3 @@
|
||||
#!/bin/bash
|
||||
export version=0.5.1-alpha.2
|
||||
export version=0.5.1-alpha.3
|
||||
echo "pub const VERSION: &str = \"${version}\";" > src/version.rs
|
||||
|
||||
@@ -13,7 +13,7 @@ pub struct Data {
|
||||
permissions: u32
|
||||
}
|
||||
|
||||
#[put("/<target>/permissions/<role>", data = "<data>")]
|
||||
#[put("/<target>/permissions/<role>", data = "<data>", rank = 2)]
|
||||
pub async fn req(user: User, target: Ref, role: String, data: Json<Data>) -> Result<()> {
|
||||
let target = target.fetch_channel().await?;
|
||||
|
||||
@@ -33,7 +33,7 @@ pub async fn req(user: User, target: Ref, role: String, data: Json<Data>) -> Res
|
||||
if !target.roles.has_element(&role) {
|
||||
return Err(Error::NotFound);
|
||||
}
|
||||
|
||||
|
||||
let permissions: u32 = ChannelPermission::View as u32 | data.permissions;
|
||||
|
||||
get_collection("channels")
|
||||
|
||||
@@ -9,12 +9,17 @@ use crate::notifications::events::ClientboundNotification;
|
||||
use crate::util::result::{Error, Result};
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Data {
|
||||
pub struct Values {
|
||||
server: u32,
|
||||
channel: u32
|
||||
}
|
||||
|
||||
#[put("/<target>/permissions/<role_id>", data = "<data>")]
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Data {
|
||||
permissions: Values
|
||||
}
|
||||
|
||||
#[put("/<target>/permissions/<role_id>", data = "<data>", rank = 2)]
|
||||
pub async fn req(user: User, target: Ref, role_id: String, data: Json<Data>) -> Result<()> {
|
||||
let target = target.fetch_server().await?;
|
||||
|
||||
@@ -31,8 +36,8 @@ pub async fn req(user: User, target: Ref, role_id: String, data: Json<Data>) ->
|
||||
return Err(Error::NotFound);
|
||||
}
|
||||
|
||||
let server_permissions: u32 = ServerPermission::View as u32 | data.server;
|
||||
let channel_permissions: u32 = ChannelPermission::View as u32 | data.channel;
|
||||
let server_permissions: u32 = ServerPermission::View as u32 | data.permissions.server;
|
||||
let channel_permissions: u32 = ChannelPermission::View as u32 | data.permissions.channel;
|
||||
|
||||
get_collection("servers")
|
||||
.update_one(
|
||||
|
||||
@@ -9,11 +9,16 @@ use crate::notifications::events::ClientboundNotification;
|
||||
use crate::util::result::{Error, Result};
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Data {
|
||||
pub struct Values {
|
||||
server: u32,
|
||||
channel: u32
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Data {
|
||||
permissions: Values
|
||||
}
|
||||
|
||||
#[put("/<target>/permissions/default", data = "<data>", rank = 1)]
|
||||
pub async fn req(user: User, target: Ref, data: Json<Data>) -> Result<()> {
|
||||
let target = target.fetch_server().await?;
|
||||
@@ -27,8 +32,8 @@ pub async fn req(user: User, target: Ref, data: Json<Data>) -> Result<()> {
|
||||
return Err(Error::MissingPermission);
|
||||
}
|
||||
|
||||
let server_permissions: u32 = ServerPermission::View as u32 | data.server;
|
||||
let channel_permissions: u32 = ChannelPermission::View as u32 | data.channel;
|
||||
let server_permissions: u32 = ServerPermission::View as u32 | data.permissions.server;
|
||||
let channel_permissions: u32 = ChannelPermission::View as u32 | data.permissions.channel;
|
||||
|
||||
get_collection("servers")
|
||||
.update_one(
|
||||
|
||||
@@ -1 +1 @@
|
||||
pub const VERSION: &str = "0.5.1-alpha.2";
|
||||
pub const VERSION: &str = "0.5.1-alpha.3";
|
||||
|
||||
Reference in New Issue
Block a user