diff --git a/set_version.sh b/set_version.sh index 83dbf614a742287a3cadb5a7f587dd95b27fd72a..89c2a54c9da27357234a1ddaf2277410c0c6ae18 100755 --- a/set_version.sh +++ b/set_version.sh @@ -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 diff --git a/src/routes/channels/permissions_set.rs b/src/routes/channels/permissions_set.rs index 34984a99259c60e0ffc116c4b85a1cf0e40ed91e..f9960d7c31643fc4e1cbf55bd2c9b9ac66b87327 100644 --- a/src/routes/channels/permissions_set.rs +++ b/src/routes/channels/permissions_set.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") diff --git a/src/routes/servers/permissions_set.rs b/src/routes/servers/permissions_set.rs index 3e23a06c7908753a4ce7b0c38d03106ba68ffd2a..62ffa3c8583a01f357a16c18d3f9057e33c7f6e9 100644 --- a/src/routes/servers/permissions_set.rs +++ b/src/routes/servers/permissions_set.rs @@ -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( diff --git a/src/routes/servers/permissions_set_default.rs b/src/routes/servers/permissions_set_default.rs index d379092c7acd66aeb1f49d290cf0a1e55b1549cc..c98dcac4b819506d868a7de511a766a2ebf26967 100644 --- a/src/routes/servers/permissions_set_default.rs +++ b/src/routes/servers/permissions_set_default.rs @@ -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( diff --git a/src/version.rs b/src/version.rs index 17272757b587060f9bc617b24f4ae510bf73edee..ca25382cee1b7ec9897b38bdb7deabcdccc88042 100644 --- a/src/version.rs +++ b/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "0.5.1-alpha.2"; +pub const VERSION: &str = "0.5.1-alpha.3";