From 29c146b3599ba87e6a434d57f8e7d36052c3b0a0 Mon Sep 17 00:00:00 2001 From: Raphael Date: Fri, 13 Feb 2026 15:07:29 +0100 Subject: [PATCH] feat(utils/perm): adding the is_buyer / is_owner / is_dev --- src/utils/perm.rs | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/utils/perm.rs b/src/utils/perm.rs index 080d32b..05cb8c3 100644 --- a/src/utils/perm.rs +++ b/src/utils/perm.rs @@ -21,3 +21,33 @@ pub async fn is_whitelist(db: &PgPool, user_id: &str, guild_id: &str) -> Result< .await?; Ok(result.is_some()) } + +pub async fn is_owner(db: &PgPool, user_id: &str) -> Result { + let result: Option = query_scalar( + "SELECT TRUE FROM users WHERE user_id = $1 AND is_dev = true OR is_buyer = true OR is_owner = true", + ) + .bind(user_id) + .fetch_optional(db) + .await?; + Ok(result.is_some()) +} + +pub async fn is_buyer(db: &PgPool, user_id: &str) -> Result { + let result: Option = query_scalar( + "SELECT TRUE FROM users WHERE user_id = $1 AND is_dev = true OR is_buyer = true", + ) + .bind(user_id) + .fetch_optional(db) + .await?; + Ok(result.is_some()) +} + +pub async fn is_dev(db: &PgPool, user_id: &str) -> Result { + let result: Option = query_scalar( + "SELECT TRUE FROM users WHERE user_id = $1 AND is_dev = true", + ) + .bind(user_id) + .fetch_optional(db) + .await?; + Ok(result.is_some()) +}