diff --git a/changes/237.canada.changes b/changes/237.canada.changes new file mode 100644 index 00000000000..4278e3d7734 --- /dev/null +++ b/changes/237.canada.changes @@ -0,0 +1 @@ +Allow `datastore_info` for custom DataStore tables. diff --git a/ckanext/datastore/logic/action.py b/ckanext/datastore/logic/action.py index 0b82c985eb5..679d4eaad16 100644 --- a/ckanext/datastore/logic/action.py +++ b/ckanext/datastore/logic/action.py @@ -356,7 +356,16 @@ def datastore_info(context: Context, data_dict: dict[str, Any] data_dict['id'] = id p.toolkit.check_access('datastore_info', context, data_dict) - p.toolkit.get_action('resource_show')(context, {'id': id}) + # (canada fork only): pass resource_show check + # TODO: upstream contrib?? + check_resource = True + public_search_tables = p.toolkit.config.get( + 'ckan.datastore.public_table_search', []) + if resource_id in public_search_tables and resource_id != '_table_metadata': + check_resource = False + + if check_resource: + p.toolkit.get_action('resource_show')(context, {'id': id}) info = backend.resource_fields(id)