diff --git a/web/src/main/java/org/devgateway/ocds/web/rest/controller/export/ExcelExportController.java b/web/src/main/java/org/devgateway/ocds/web/rest/controller/export/ExcelExportController.java index 393ace0e6..714fb65b0 100644 --- a/web/src/main/java/org/devgateway/ocds/web/rest/controller/export/ExcelExportController.java +++ b/web/src/main/java/org/devgateway/ocds/web/rest/controller/export/ExcelExportController.java @@ -1,6 +1,17 @@ package org.devgateway.ocds.web.rest.controller.export; import io.swagger.annotations.ApiOperation; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.zip.Deflater; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import org.apache.commons.io.FileCleaningTracker; import org.apache.commons.io.IOUtils; import org.devgateway.ocds.persistence.mongo.Release; @@ -8,6 +19,8 @@ import org.devgateway.ocds.web.rest.controller.GenericOCDSController; import org.devgateway.ocds.web.rest.controller.request.YearFilterPagingRequest; import org.devgateway.ocds.web.util.SettingsUtils; +import org.devgateway.toolkit.persistence.repository.AdminSettingsRepository; +import org.devgateway.toolkit.web.security.SecurityUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -16,17 +29,6 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.zip.Deflater; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; import static org.springframework.data.mongodb.core.query.Query.query; @@ -47,11 +49,20 @@ public class ExcelExportController extends GenericOCDSController { @Autowired private FileCleaningTracker fileCleaningTracker; + @Autowired + protected AdminSettingsRepository adminSettingsRepository; + @ApiOperation(value = "Export releases in Excel format.") @RequestMapping(value = "/api/ocds/excelExport", method = {RequestMethod.GET, RequestMethod.POST}) public void excelExport(@ModelAttribute @Valid final YearFilterPagingRequest filter, final HttpServletResponse response) throws IOException { + + Boolean disabledSecurity = SecurityUtil.getDisabledApiSecurity(adminSettingsRepository); + if (disabledSecurity) { + return; + } + // set the default page size from admin settings filter.setPageSize(settingsUtils.getExcelBatchSize()); @@ -73,7 +84,7 @@ public void excelExport(@ModelAttribute @Valid final YearFilterPagingRequest fil ZipOutputStream zout = new ZipOutputStream(bos); zout.setMethod(ZipOutputStream.DEFLATED); - zout.setLevel(Deflater.BEST_COMPRESSION); + zout.setLevel(Deflater.BEST_SPEED); int numberOfPages = (int) Math.ceil((double) numberOfReleases / filter.getPageSize()); for (int i = 0; i < numberOfPages; i++) {