From 08e8283c58c94f773936bac09d56bc6430382bbb Mon Sep 17 00:00:00 2001 From: Alexander Petric Date: Fri, 28 Mar 2025 10:59:18 -0400 Subject: [PATCH] fix: fetch correct resource for interactive slack when multiple workspaces connected (#5532) --- backend/windmill-api/src/slack_approvals.rs | 25 ++++----------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/backend/windmill-api/src/slack_approvals.rs b/backend/windmill-api/src/slack_approvals.rs index 652c7b1721..4f37b648a9 100644 --- a/backend/windmill-api/src/slack_approvals.rs +++ b/backend/windmill-api/src/slack_approvals.rs @@ -23,7 +23,7 @@ use windmill_common::{ error::{self, Error}, jobs::JobKind, scripts::ScriptHash, - variables::{build_crypt, decrypt}, + variables::get_secret_value_as_admin, }; #[derive(Deserialize, Debug)] @@ -838,26 +838,9 @@ fn process_non_datetime_inputs( } async fn get_slack_token(db: &DB, slack_resource_path: &str, w_id: &str) -> anyhow::Result { - let slack_token = match sqlx::query!( - "SELECT value, is_secret FROM variable WHERE path = $1", - slack_resource_path - ) - .fetch_optional(db) - .await? - { - Some(row) => row, - None => { - return Err(anyhow::anyhow!("No slack token found")); - } - }; - - if slack_token.is_secret { - let mc = build_crypt(&db, w_id).await?; - let bot_token = decrypt(&mc, slack_token.value)?; - Ok(bot_token) - } else { - Ok(slack_token.value) - } + get_secret_value_as_admin(db, w_id, slack_resource_path) + .await + .map_err(|e| anyhow::anyhow!(e.to_string())) } // Sends a Slack message with a button that opens a modal