diff --git a/backend/windmill-api-workspaces/src/datatable_acl.rs b/backend/windmill-api-workspaces/src/datatable_acl.rs index 3fe53efbf4..971d95793e 100644 --- a/backend/windmill-api-workspaces/src/datatable_acl.rs +++ b/backend/windmill-api-workspaces/src/datatable_acl.rs @@ -223,7 +223,8 @@ pub struct DatatableAclInfo { /// The roles a change may name: `admin`, then every role of the instance catalog. Only for a /// caller who may change anything, as the catalog is in the permissions drawer. pub roles: Vec, - /// Whether this caller may plan and apply changes. + /// Whether this caller may plan and apply changes: they administer the data table, on an + /// edition that has the planner. pub editable: bool, /// Whether the server is Postgres 17 or later, which added the `MAINTAIN` table privilege. pub supports_maintain: bool, @@ -574,9 +575,10 @@ async fn get_datatable_acl( ensure_reaches_datatable(&db, &w_id, &datatable_name, &authed).await?; let governing = resolve_governing_datatable(&db, &w_id, &datatable_name).await?; ensure_instance(&governing)?; - let editable = ensure_governs_datatable(&db, &authed, &w_id, &governing) - .await - .is_ok(); + let editable = crate::datatable_acl_oss::ensure_acl_planner().is_ok() + && ensure_governs_datatable(&db, &authed, &w_id, &governing) + .await + .is_ok(); let roles = if editable { role_names(&read_role_catalog(&db).await?) } else { diff --git a/frontend/src/lib/components/datatableAcl/PgAclEditor.svelte b/frontend/src/lib/components/datatableAcl/PgAclEditor.svelte index 65b599cd6e..5ce2d274fb 100644 --- a/frontend/src/lib/components/datatableAcl/PgAclEditor.svelte +++ b/frontend/src/lib/components/datatableAcl/PgAclEditor.svelte @@ -113,7 +113,8 @@
{#if !info.editable} - Read only: access is changed by the admins of the workspace that governs this data table. + Read only: access is changed by the admins of the workspace that governs this data table, on + Windmill Enterprise Edition. {/if}