fix(datasource): map combined_list to can_read so Gamma can list datasets

The combined_list endpoint added in #37815 used the auto-derived
`can_combined_list on Datasource` permission, which is not in
READ_ONLY_PERMISSION and is therefore excluded from the Gamma role by
_is_alpha_only. Map it to `can_read on Datasource` instead so Gamma
inherits access alongside Alpha and Admin.
This commit is contained in:
Mehmet Salih Yavuz
2026-05-07 14:08:30 +03:00
parent b5186d1c65
commit bdcad9bdb4
2 changed files with 6 additions and 4 deletions

View File

@@ -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(
"/<datasource_type>/<int:datasource_id>/column/<column_name>/values/",

View File

@@ -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]