From 68911ed2e801f2a06370ebf0a51af9c8b6816030 Mon Sep 17 00:00:00 2001 From: Raphael Date: Fri, 13 Feb 2026 15:02:06 +0100 Subject: [PATCH] feat(utils/perm): adding the is_whitelist field --- src/utils/perm.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/utils/perm.rs diff --git a/src/utils/perm.rs b/src/utils/perm.rs new file mode 100644 index 0000000..080d32b --- /dev/null +++ b/src/utils/perm.rs @@ -0,0 +1,23 @@ +use sqlx::{ + PgPool, + query_scalar, +}; + +pub async fn is_whitelist(db: &PgPool, user_id: &str, guild_id: &str) -> Result { + let result: Option = query_scalar( + "SELECT TRUE FROM guild_users gu \ + LEFT JOIN users u ON u.user_id = gu.user_id \ + WHERE gu.user_id = $1 AND gu.guild_id = $2 \ + AND ( \ + gu.is_wl_user = true \ + OR COALESCE(u.is_owner, false) = true \ + OR COALESCE(u.is_buyer, false) = true \ + OR COALESCE(u.is_dev, false) = true \ + )", + ) + .bind(user_id) + .bind(guild_id) + .fetch_optional(db) + .await?; + Ok(result.is_some()) +}