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