Merge pull request #16320 from CartoDB/feature/ch166179/reef-admin-can-t-import-datasets-due-to-0

Don't check map quotas during dataset imports
pull/16316/head^2
Alberto Miedes Garcés 3 years ago committed by GitHub
commit 97131ae158
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -41,6 +41,7 @@ Development
- Fix broken links on the public footer [#16308](https://github.com/CartoDB/cartodb/pull/16308)
- Fix search in _Filter by Column Value_ analysis [#16310](https://github.com/CartoDB/cartodb/pull/16310)
- Use Google Maps provider if the base layer is Google [#16314](https://github.com/CartoDB/cartodb/pull/16314)
- Allow importing datasets with exhausted map quota [#16320](https://github.com/CartoDB/cartodb/pull/16320)
4.45.0 (2021-04-14)
-------------------

@ -60,7 +60,6 @@ module CartoDB
@aborted = true
results.each { |result| drop(result.table_name) }
else
check_map_quotas(runner.visualizations)
check_dataset_quotas(runner.visualizations)
log('Proceeding to register')
register_results(results)
@ -69,22 +68,6 @@ module CartoDB
self
end
def check_map_quotas(visualizations)
log('Checking public and private map quota')
public_maps = visualizations.select do |v|
v.type == Carto::Visualization::TYPE_DERIVED && v.privacy != Carto::Visualization::PRIVACY_PRIVATE
end
private_maps = visualizations.select do |v|
v.type == Carto::Visualization::TYPE_DERIVED && v.privacy == Carto::Visualization::PRIVACY_PRIVATE
end
quota_checker = CartoDB::QuotaChecker.new(data_import.user)
return unless quota_checker.will_be_over_public_map_quota?(public_maps.count) ||
quota_checker.will_be_over_private_map_quota?(private_maps.count)
log('Results would set map overquota')
raise CartoDB::Importer2::MapQuotaExceededError.new
end
def check_dataset_quotas(visualizations)
log('Checking public datasets quota')
public_datasets = visualizations.select do |v|

@ -735,27 +735,5 @@ describe CartoDB::Connector::Importer do
@user.public_dataset_quota = nil
@user.save
end
it 'fails to import a visualization export if private map quota is exceeded' do
filepath = "#{Rails.root}/services/importer/spec/fixtures/visualization_export_with_csv_table.carto"
@user.private_map_quota = 0
@user.save
@data_import = DataImport.create(
user_id: @user.id,
data_source: filepath,
updated_at: Time.now.utc,
append: false,
create_visualization: true
)
@data_import.values[:data_source] = filepath
expect { @data_import.run_import! }.to raise_error('Map quota exceeded')
@data_import.success.should eq false
@data_import.error_code.should eq 8007
Carto::User.any_instance.unstub(:public_map_quota)
@user.private_map_quota = nil
@user.save
end
end
end

Loading…
Cancel
Save