diff --git a/backend/.sqlx/query-3bea19482b516841561702a73fe64f411342ed0c169164eadf2f4c3f6c2e3ba1.json b/backend/.sqlx/query-fc8fa909ef7a15c7ad30dd938be3c13864e855219c7f366c86f0605ec25d1538.json similarity index 67% rename from backend/.sqlx/query-3bea19482b516841561702a73fe64f411342ed0c169164eadf2f4c3f6c2e3ba1.json rename to backend/.sqlx/query-fc8fa909ef7a15c7ad30dd938be3c13864e855219c7f366c86f0605ec25d1538.json index 38539051a8..f5d5a46df5 100644 --- a/backend/.sqlx/query-3bea19482b516841561702a73fe64f411342ed0c169164eadf2f4c3f6c2e3ba1.json +++ b/backend/.sqlx/query-fc8fa909ef7a15c7ad30dd938be3c13864e855219c7f366c86f0605ec25d1538.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT workspace_id, auto_invite_operator, auto_add FROM workspace_settings WHERE auto_invite_domain = $1 OR auto_invite_domain = '*'", + "query": "SELECT workspace_id, auto_invite_operator, auto_add FROM workspace_settings ws WHERE (auto_invite_domain = $1 OR auto_invite_domain = '*') AND NOT EXISTS (SELECT 1 FROM usr WHERE workspace_id = ws.workspace_id AND email = $2)", "describe": { "columns": [ { @@ -21,6 +21,7 @@ ], "parameters": { "Left": [ + "Text", "Text" ] }, @@ -30,5 +31,5 @@ true ] }, - "hash": "3bea19482b516841561702a73fe64f411342ed0c169164eadf2f4c3f6c2e3ba1" + "hash": "fc8fa909ef7a15c7ad30dd938be3c13864e855219c7f366c86f0605ec25d1538" } diff --git a/backend/windmill-api/src/workspaces.rs b/backend/windmill-api/src/workspaces.rs index 1c0ea27fad..b11f43e052 100644 --- a/backend/windmill-api/src/workspaces.rs +++ b/backend/windmill-api/src/workspaces.rs @@ -1690,8 +1690,9 @@ pub async fn invite_user_to_all_auto_invite_worspaces(db: &DB, email: &str) -> R let mut tx = db.begin().await?; let domain = email.split('@').last().unwrap(); let workspaces = sqlx::query!( - "SELECT workspace_id, auto_invite_operator, auto_add FROM workspace_settings WHERE auto_invite_domain = $1 OR auto_invite_domain = '*'", - domain + "SELECT workspace_id, auto_invite_operator, auto_add FROM workspace_settings ws WHERE (auto_invite_domain = $1 OR auto_invite_domain = '*') AND NOT EXISTS (SELECT 1 FROM usr WHERE workspace_id = ws.workspace_id AND email = $2)", + domain, + email ) .fetch_all(&mut *tx) .await?;