diff --git a/crates/delta/src/routes/servers/server_edit.rs b/crates/delta/src/routes/servers/server_edit.rs index 267b0a2a..932f798e 100644 --- a/crates/delta/src/routes/servers/server_edit.rs +++ b/crates/delta/src/routes/servers/server_edit.rs @@ -33,6 +33,10 @@ pub struct DataEditServer { /// System message configuration system_messages: Option, + /// Bitfield of server flags + #[serde(skip_serializing_if = "Option::is_none")] + pub flags: Option, + // Whether this server is age-restricted // nsfw: Option, /// Whether this server is public and should show up on [Revolt Discover](https://rvlt.gg) @@ -90,6 +94,8 @@ pub async fn req( permissions .throw_permission(db, Permission::ManageServer) .await?; + } else if data.flags.is_some() && !user.privileged { + return Err(Error::NotPrivileged); } if data.categories.is_some() { @@ -105,6 +111,7 @@ pub async fn req( banner, categories, system_messages, + flags, // nsfw, discoverable, analytics, @@ -116,6 +123,7 @@ pub async fn req( description, categories, system_messages, + flags, // nsfw, discoverable, analytics, diff --git a/crates/quark/src/models/servers/server.rs b/crates/quark/src/models/servers/server.rs index 0df877b3..375b1447 100644 --- a/crates/quark/src/models/servers/server.rs +++ b/crates/quark/src/models/servers/server.rs @@ -118,7 +118,7 @@ pub struct Server { #[serde(skip_serializing_if = "Option::is_none")] pub banner: Option, - /// Enum of server flags + /// Bitfield of server flags #[serde(skip_serializing_if = "Option::is_none")] pub flags: Option,