mirror of
https://github.com/apache/superset.git
synced 2026-05-21 15:55:10 +00:00
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:
@@ -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/",
|
||||
|
||||
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user