From: Richard Millet Date: Mon, 4 Feb 2013 17:01:32 +0000 (-0800) Subject: Merge branch 'CSPACE-5564-REM-A' into CSPACE-5564-REM-B X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=45207c67fc94d4805f2404ec0c133a1b89ae037e;p=tmp%2Fjakarta-migration.git Merge branch 'CSPACE-5564-REM-A' into CSPACE-5564-REM-B Conflicts: services/authentication/service/src/main/java/org/collectionspace/authentication/spring/SpringAuthNContext.java --- 45207c67fc94d4805f2404ec0c133a1b89ae037e diff --cc services/authentication/service/src/main/java/org/collectionspace/authentication/spring/SpringAuthNContext.java index 17b59baa6,9094773f6..29a29f696 --- a/services/authentication/service/src/main/java/org/collectionspace/authentication/spring/SpringAuthNContext.java +++ b/services/authentication/service/src/main/java/org/collectionspace/authentication/spring/SpringAuthNContext.java @@@ -43,8 -46,14 +46,14 @@@ final public class SpringAuthNContext e //private static final String SUBJECT_CONTEXT_KEY = "javax.security.auth.Subject.container"; public String getUserId() { + String result = ANONYMOUS_USER; + Authentication authToken = SecurityContextHolder.getContext().getAuthentication(); - return authToken.getName(); + if (authToken != null) { + result = authToken.getName(); - } ++ } + + return result; } /** @@@ -64,12 -73,18 +73,18 @@@ @Override public String getCurrentTenantId() { - //FIXME assumption in 1.0: each user is associated with a single tenant + String result = ANONYMOUS_TENANT_ID; + + String userId = getUserId(); + if (userId.equals(ANONYMOUS_USER) == false && userId.equals(SPRING_ADMIN_USER) == false) { - String[] tenantIds = getTenantIds(); - if (tenantIds.length < 1) { - throw new IllegalStateException("No tenant associated with user=" + getUserId()); - } + String[] tenantIds = getTenantIds(); + if (tenantIds.length < 1) { + throw new IllegalStateException("No tenant associated with user=" + getUserId()); + } - return getTenantIds()[0]; + result = getTenantIds()[0]; - } ++ } + + return result; } public CSpaceTenant[] getTenants() { @@@ -113,12 -127,17 +127,17 @@@ @Override public String getCurrentTenantName() { - //FIXME assumption in 1.0: each user is associated with a single tenant + String result = ANONYMOUS_TENANT_NAME; + + if (getUserId().equals(ANONYMOUS_USER) == false) { - CSpaceTenant[] tenants = getTenants(); - if (tenants.length < 1) { - throw new IllegalStateException("No tenant associated with user=" + getUserId()); - } + CSpaceTenant[] tenants = getTenants(); + if (tenants.length < 1) { + throw new IllegalStateException("No tenant associated with user=" + getUserId()); + } - return getTenants()[0].getName(); + result = getTenants()[0].getName(); - } ++ } + + return result; } public Subject getSubject() { diff --cc services/report/service/src/main/java/org/collectionspace/services/report/nuxeo/ReportDocumentModelHandler.java index 95e3f4923,d3628e85b..c0bb1cac9 --- a/services/report/service/src/main/java/org/collectionspace/services/report/nuxeo/ReportDocumentModelHandler.java +++ b/services/report/service/src/main/java/org/collectionspace/services/report/nuxeo/ReportDocumentModelHandler.java @@@ -225,19 -225,14 +230,18 @@@ public class ReportDocumentModelHandle } - - - private Response buildReportResponse(String reportCSID, - HashMap params, String reportFileName, String outputMimeType) + private InputStream buildReportResult(String reportCSID, + HashMap params, String reportFileName, String outputMimeType, StringBuffer outReportFileName) throws Exception { Connection conn = null; - Response response = null; + InputStream result = null; + try { - String fullPath = ServiceMain.getInstance().getServerRootDir() + + String fileNameBase = Tools.getFilenameBase(reportFileName); + String compiledReportFilename = fileNameBase+ReportClient.COMPILED_REPORT_EXTENSION; + String reportDescriptionFilename = fileNameBase+ReportClient.REPORT_DECSRIPTION_EXTENSION; + + String basePath = ServiceMain.getInstance().getServerRootDir() + File.separator + ConfigReader.CSPACE_DIR_NAME + File.separator + REPORTS_FOLDER + // File.separator + tenantName + @@@ -304,23 -282,8 +308,24 @@@ exporter = new JRCsvExporter(); exporter.setParameter(JRCsvExporterParameter.FIELD_DELIMITER, "\t"); outputFilename = outputFilename+".csv"; + } else if(outputMimeType.equals(ReportClient.MSWORD_MIME_TYPE) // Understand msword as docx + || outputMimeType.equals(ReportClient.OPEN_DOCX_MIME_TYPE)) { + exporter = new JRDocxExporter(); + outputFilename = outputFilename+".docx"; + } else if(outputMimeType.equals(ReportClient.MSEXCEL_MIME_TYPE) // Understand msexcel as xlsx + || outputMimeType.equals(ReportClient.OPEN_XLSX_MIME_TYPE)) { + exporter = new JRXlsxExporter(); + outputFilename = outputFilename+".xlsx"; + } else if(outputMimeType.equals(ReportClient.MSPPT_MIME_TYPE) // Understand msppt as xlsx + || outputMimeType.equals(ReportClient.OPEN_PPTX_MIME_TYPE)) { + exporter = new JRPptxExporter(); + outputFilename = outputFilename+".pptx"; + } else { + logger.error("Reporting: unsupported output MIME type - defaulting to PDF"); + exporter = new JRPdfExporter(); + outputFilename = outputFilename+"-default-to.pdf"; } + outReportFileName.append(outputFilename); // Set the out going param to the report's final file name // fill the report JasperPrint jasperPrint = JasperFillManager.fillReport(fileStream, params,conn);