From ac7738652e0a46ebeec3296e805ef3f9e26cbc90 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <209825114+claude[bot]@users.noreply.github.com> Date: Fri, 27 Jun 2025 08:50:07 +0000 Subject: [PATCH] Allow change_workspace_id on CLOUD_HOSTED for superadmins (#6073) * feat: allow change_workspace_id on CLOUD_HOSTED for superadmins - Import is_super_admin_email function from windmill_common::auth - Modify CLOUD_HOSTED restriction to bypass for superadmin users - Resolves request to allow workspace ID changes for superadmins only Co-authored-by: Ruben Fiszel * feat: allow superadmins to change workspace ID on cloud hosted environments Update frontend conditional logic to show workspace ID change button for superadmins on cloud hosted environments. This complements the backend changes that already allow superadmins to perform the workspace ID change operation. Changes: - Add superadmin import from $lib/stores - Update condition from `!isCloudHosted()` to `!isCloudHosted() || $superadmin` Co-authored-by: Ruben Fiszel --------- Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com> Co-authored-by: Ruben Fiszel --- backend/windmill-api/src/workspaces_extra.rs | 3 ++- frontend/src/lib/components/settings/ChangeWorkspaceId.svelte | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/windmill-api/src/workspaces_extra.rs b/backend/windmill-api/src/workspaces_extra.rs index 51a224d0e2..6238ead74f 100644 --- a/backend/windmill-api/src/workspaces_extra.rs +++ b/backend/windmill-api/src/workspaces_extra.rs @@ -14,6 +14,7 @@ use windmill_audit::ActionKind; use windmill_common::worker::CLOUD_HOSTED; use windmill_common::{ + auth::is_super_admin_email, error::{Error, Result}, utils::require_admin, }; @@ -32,7 +33,7 @@ pub(crate) async fn change_workspace_id( Extension(db): Extension, Json(rw): Json, ) -> Result { - if *CLOUD_HOSTED { + if *CLOUD_HOSTED && !is_super_admin_email(&db, &authed.email).await? { return Err(Error::BadRequest( "This feature is not available on the cloud".to_string(), )); diff --git a/frontend/src/lib/components/settings/ChangeWorkspaceId.svelte b/frontend/src/lib/components/settings/ChangeWorkspaceId.svelte index 6e39ef1a1e..26057c2446 100644 --- a/frontend/src/lib/components/settings/ChangeWorkspaceId.svelte +++ b/frontend/src/lib/components/settings/ChangeWorkspaceId.svelte @@ -1,5 +1,5 @@