diff --git a/superset/datasource/api.py b/superset/datasource/api.py index fb3f21c6926..0bda8bf35d5 100644 --- a/superset/datasource/api.py +++ b/superset/datasource/api.py @@ -42,6 +42,10 @@ class DatasourceRestApi(BaseSupersetApi): class_permission_name = "Datasource" resource_name = "datasource" openapi_spec_tag = "Datasources" + # Map the combined list endpoint to the generic `can_read on Datasource` + # permission so it inherits the Gamma/Alpha/Admin grants instead of + # creating a method-specific permission that is Alpha-only by default. + method_permission_name = {"combined_list": "read"} @expose( "///column//values/", diff --git a/tests/integration_tests/datasource/api_tests.py b/tests/integration_tests/datasource/api_tests.py index 0dda05a41ac..cece8a3a941 100644 --- a/tests/integration_tests/datasource/api_tests.py +++ b/tests/integration_tests/datasource/api_tests.py @@ -212,10 +212,8 @@ class TestDatasourceApi(SupersetTestCase): run_mock, can_access_mock, ): - security_manager.add_permission_view_menu("can_combined_list", "Datasource") - perm = security_manager.find_permission_view_menu( - "can_combined_list", "Datasource" - ) + security_manager.add_permission_view_menu("can_read", "Datasource") + perm = security_manager.find_permission_view_menu("can_read", "Datasource") admin_role = security_manager.find_role("Admin") security_manager.add_permission_role(admin_role, perm) can_access_mock.side_effect = [True, True]