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";