List of usage examples for javax.servlet.http HttpServletRequest getRemoteUser
public String getRemoteUser();
null
if the user has not been authenticated. From source file:org.eclipse.orion.server.authentication.formopenid.FormOpenIdLoginServlet.java
@Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String pathInfo = req.getPathInfo() == null ? "" : req.getPathInfo(); //$NON-NLS-1$ if (pathInfo.startsWith("/form")) { //$NON-NLS-1$ try {/*from w ww.jav a 2 s .c o m*/ LoginResult authResult = FormAuthHelper.performAuthentication(req, resp); if (authResult == LoginResult.OK) { // redirection from // FormAuthenticationService.setNotAuthenticated String versionString = req.getHeader("Orion-Version"); //$NON-NLS-1$ Version version = versionString == null ? null : new Version(versionString); // TODO: This is a workaround for calls // that does not include the WebEclipse version header String xRequestedWith = req.getHeader("X-Requested-With"); //$NON-NLS-1$ if (version == null && !"XMLHttpRequest".equals(xRequestedWith)) { //$NON-NLS-1$ if (req.getParameter(OpenIdHelper.REDIRECT) != null && !req.getParameter(OpenIdHelper.REDIRECT).equals("")) { //$NON-NLS-1$ resp.sendRedirect(req.getParameter(OpenIdHelper.REDIRECT)); } } else { resp.setStatus(HttpServletResponse.SC_OK); PrintWriter writer = resp.getWriter(); String uid = (String) req.getSession().getAttribute("user"); JSONObject userJson; try { userJson = FormAuthHelper.getUserJson(uid, req.getContextPath()); writer.print(userJson); resp.setContentType("application/json"); //$NON-NLS-1$ } catch (JSONException e) {/* ignore */ } } resp.flushBuffer(); } else if (authResult == LoginResult.BLOCKED) { displayError("Your account is not active. Please confirm your email before logging in.", req, resp); } else { displayError("Invalid user or password", req, resp); } } catch (UnsupportedUserStoreException e) { LogHelper.log(e); resp.sendError(HttpServletResponse.SC_NOT_FOUND, e.getMessage()); } return; } if (pathInfo.startsWith("/openid")) { //$NON-NLS-1$ String openid = req.getParameter(OpenIdHelper.OPENID); if (openid != null) { try { consumer = OpenIdHelper.redirectToOpenIdProvider(req, resp, consumer); } catch (OpenIdException e) { LogHelper.log(new Status(IStatus.ERROR, Activator.PI_AUTHENTICATION_SERVLETS, "An error occurred redirecting to OpenId provider", e)); displayError(e.getMessage(), req, resp); } return; } String op_return = req.getParameter(OpenIdHelper.OP_RETURN); if (op_return != null) { try { OpenIdHelper.handleOpenIdReturnAndLogin(req, resp, consumer); } catch (OpenIdException e) { displayError(e.getMessage(), req, resp); } return; } } if (pathInfo.startsWith("/persona")) { //$NON-NLS-1$ String assertion = req.getParameter(PersonaConstants.PARAM_ASSERTION); if (assertion != null) { try { new PersonaHelper().handleCredentialsAndLogin(req, resp); } catch (PersonaException e) { displayError(e.getMessage(), req, resp); } } } if (pathInfo.startsWith("/canaddusers")) { JSONObject jsonResp = new JSONObject(); try { jsonResp.put("CanAddUsers", FormAuthHelper.canAddUsers()); jsonResp.put("ForceEmail", FormAuthHelper.forceEmail()); jsonResp.put("RegistrationURI", FormAuthHelper.registrationURI()); } catch (JSONException e) { } resp.getWriter().print(jsonResp); resp.setContentType("application/json"); return; } String user = req.getRemoteUser(); if (user == null) { user = authenticationService.getAuthenticatedUser(req, resp, authenticationService.getDefaultAuthenticationProperties()); } if (user != null) { resp.setStatus(HttpServletResponse.SC_OK); try { resp.getWriter().print(FormAuthHelper.getUserJson(user, req.getContextPath())); } catch (JSONException e) { handleException(resp, "An error occured when creating JSON object for logged in user", e); } return; } }
From source file:com.gtwm.pb.model.manageSchema.DatabaseDefn.java
public void removeFieldFromReport(HttpServletRequest request, Connection conn, ReportFieldInfo reportField) throws SQLException, DisallowedException, CantDoThatException, CodingErrorException, ObjectNotFoundException {/*ww w.j a va 2s .c om*/ SimpleReportInfo report = (SimpleReportInfo) reportField.getParentReport(); if (!(this.authManager.getAuthenticator().loggedInUserAllowedTo(request, PrivilegeType.MANAGE_TABLE, report.getParentTable()))) { throw new DisallowedException(this.authManager.getLoggedInUser(request), PrivilegeType.MANAGE_TABLE, report.getParentTable()); } HibernateUtil.activateObject(report); this.removeFieldFromReportChecks(reportField, request); report.removeField(reportField); if (reportField.equals(report.getWordCloudField())) { report.setWordCloudField(null); } ReportMapInfo map = report.getMap(); if (map != null) { if (reportField.equals(map.getPostcodeField())) { map.setPostcodeField(null); } if (reportField.equals(map.getColourField())) { map.setColourField(null); } } this.updateViewDbAction(conn, report, request); HibernateUtil.currentSession().delete(reportField); UsageLogger usageLogger = new UsageLogger(this.relationalDataSource); AppUserInfo user = this.authManager.getUserByUserName(request, request.getRemoteUser()); usageLogger.logReportSchemaChange(user, report, AppAction.REMOVE_FIELD_FROM_REPORT, "field: " + reportField); UsageLogger.startLoggingThread(usageLogger); }
From source file:com.gtwm.pb.model.manageSchema.DatabaseDefn.java
public ModuleInfo addModule(HttpServletRequest request, CompanyInfo company) throws ObjectNotFoundException, DisallowedException { if (company == null) { company = this.authManager.getCompanyForLoggedInUser(request); }//w w w .j ava2 s.c o m // Make sure module name is unique String baseModuleName = "New Module"; String moduleName = baseModuleName; SortedSet<ModuleInfo> modules = company.getModules(); Set<String> existingModuleNames = new HashSet<String>(); int indexNumber = 0; for (ModuleInfo existingModule : modules) { existingModuleNames.add(existingModule.getModuleName()); } if (modules.size() > 0) { ModuleInfo lastModule = modules.last(); indexNumber = lastModule.getIndexNumber() + 10; } else { indexNumber = 10; } int moduleCount = 0; while (existingModuleNames.contains(moduleName)) { moduleCount++; moduleName = baseModuleName + " " + String.valueOf(moduleCount); } ModuleInfo newModule = new Module(moduleName, "actions/go-home.png", indexNumber); newModule.setColour("blue"); HibernateUtil.currentSession().save(newModule); HibernateUtil.activateObject(company); company.addModule(newModule); UsageLogger usageLogger = new UsageLogger(this.relationalDataSource); AppUserInfo user = this.authManager.getUserByUserName(request, request.getRemoteUser()); usageLogger.logReportSchemaChange(user, null, AppAction.ADD_MODULE, newModule.getModuleName()); UsageLogger.startLoggingThread(usageLogger); return newModule; }
From source file:com.gtwm.pb.model.manageSchema.DatabaseDefn.java
public void addCalculationToReport(HttpServletRequest request, Connection conn, SimpleReportInfo report, ReportCalcFieldInfo calculationField) throws SQLException, DisallowedException, InconsistentStateException, CantDoThatException, CodingErrorException, ObjectNotFoundException { if (!(this.authManager.getAuthenticator().loggedInUserAllowedTo(request, PrivilegeType.MANAGE_TABLE, report.getParentTable()))) { throw new DisallowedException(this.authManager.getLoggedInUser(request), PrivilegeType.MANAGE_TABLE, report.getParentTable()); }/*from w ww . j a va 2s. co m*/ HibernateUtil.activateObject(report); Savepoint savepoint = null; report.addCalculation(calculationField); savepoint = conn.setSavepoint("addCalculationSavepoint"); try { this.updateViewDbAction(conn, report, request); } catch (SQLException sqlex) { // detect aggregate functions if (sqlex.getMessage().contains("must appear in the GROUP BY clause") || sqlex.getMessage().contains("aggregates not allowed in GROUP BY clause")) { conn.rollback(savepoint); calculationField.setAggregateFunction(true); this.updateViewDbAction(conn, report, request); } else { throw sqlex; } } UsageLogger usageLogger = new UsageLogger(this.relationalDataSource); AppUserInfo user = this.authManager.getUserByUserName(request, request.getRemoteUser()); usageLogger.logReportSchemaChange(user, report, AppAction.ADD_CALCULATION_TO_REPORT, "calculation name: " + calculationField.getFieldName()); UsageLogger.startLoggingThread(usageLogger); }
From source file:org.apache.catalina.servlets.DefaultServlet.java
/** * Show HTTP header information.// w ww .j a v a 2 s.c o m * * @param req Description of the Parameter */ protected void showRequestInfo(HttpServletRequest req) { System.out.println(); System.out.println("SlideDAV Request Info"); System.out.println(); // Show generic info System.out.println("Encoding : " + req.getCharacterEncoding()); System.out.println("Length : " + req.getContentLength()); System.out.println("Type : " + req.getContentType()); System.out.println(); System.out.println("Parameters"); Enumeration parameters = req.getParameterNames(); while (parameters.hasMoreElements()) { String paramName = (String) parameters.nextElement(); String[] values = req.getParameterValues(paramName); System.out.print(paramName + " : "); for (int i = 0; i < values.length; i++) { System.out.print(values[i] + ", "); } System.out.println(); } System.out.println(); System.out.println("Protocol : " + req.getProtocol()); System.out.println("Address : " + req.getRemoteAddr()); System.out.println("Host : " + req.getRemoteHost()); System.out.println("Scheme : " + req.getScheme()); System.out.println("Server Name : " + req.getServerName()); System.out.println("Server Port : " + req.getServerPort()); System.out.println(); System.out.println("Attributes"); Enumeration attributes = req.getAttributeNames(); while (attributes.hasMoreElements()) { String attributeName = (String) attributes.nextElement(); System.out.print(attributeName + " : "); System.out.println(req.getAttribute(attributeName).toString()); } System.out.println(); // Show HTTP info System.out.println(); System.out.println("HTTP Header Info"); System.out.println(); System.out.println("Authentication Type : " + req.getAuthType()); System.out.println("HTTP Method : " + req.getMethod()); System.out.println("Path Info : " + req.getPathInfo()); System.out.println("Path translated : " + req.getPathTranslated()); System.out.println("Query string : " + req.getQueryString()); System.out.println("Remote user : " + req.getRemoteUser()); System.out.println("Requested session id : " + req.getRequestedSessionId()); System.out.println("Request URI : " + req.getRequestURI()); System.out.println("Context path : " + req.getContextPath()); System.out.println("Servlet path : " + req.getServletPath()); System.out.println("User principal : " + req.getUserPrincipal()); System.out.println(); System.out.println("Headers : "); Enumeration headers = req.getHeaderNames(); while (headers.hasMoreElements()) { String headerName = (String) headers.nextElement(); System.out.print(headerName + " : "); System.out.println(req.getHeader(headerName)); } System.out.println(); System.out.println(); }
From source file:com.openkm.servlet.admin.BenchmarkServlet.java
/** * Load documents into repository several times */// w w w . j a v a 2s. co m private void okmImport(HttpServletRequest request, HttpServletResponse response, String base) throws IOException { log.debug("okmImport({}, {}, {})", new Object[] { request, response, base }); String path = WebUtils.getString(request, "param1"); int times = WebUtils.getInt(request, "param2"); PrintWriter out = response.getWriter(); ImpExpStats tStats = new ImpExpStats(); long tBegin = 0, tEnd = 0; response.setContentType(MimeTypeConfig.MIME_HTML); header(out, "OpenKM import documents", breadcrumb); out.flush(); try { File dir = new File(path); int docs = FileUtils.listFiles(dir, null, true).size(); out.println("<b>- Path:</b> " + path + "<br/>"); out.println("<b>- Times:</b> " + times + "<br/>"); out.println("<b>- Documents:</b> " + docs + "<br/>"); out.flush(); Folder rootFld = OKMRepository.getInstance().getRootFolder(null); Folder fld = new Folder(); fld.setPath(rootFld.getPath() + "/" + base); OKMFolder.getInstance().create(null, fld); tBegin = System.currentTimeMillis(); for (int i = 0; i < times; i++) { out.println("<h2>Iteration " + i + "</h2>"); out.flush(); // out.println("<table class=\"results\" width=\"100%\">"); // out.println("<tr><th>#</th><th>Document</th><th>Size</th></tr>"); long begin = System.currentTimeMillis(); fld.setPath(rootFld.getPath() + "/" + base + "/" + i); OKMFolder.getInstance().create(null, fld); ImpExpStats stats = RepositoryImporter.importDocuments(null, dir, fld.getPath(), false, false, false, out, new HTMLInfoDecorator(docs)); long end = System.currentTimeMillis(); tStats.setSize(tStats.getSize() + stats.getSize()); tStats.setFolders(tStats.getFolders() + stats.getFolders()); tStats.setDocuments(tStats.getDocuments() + stats.getDocuments()); // out.println("<table>"); out.println("<br/>"); out.println("<b>Size:</b> " + FormatUtil.formatSize(stats.getSize()) + "<br/>"); out.println("<b>Folders:</b> " + stats.getFolders() + "<br/>"); out.println("<b>Documents:</b> " + stats.getDocuments() + "<br/>"); out.println("<b>Time:</b> " + FormatUtil.formatSeconds(end - begin) + "<br/>"); out.flush(); } tEnd = System.currentTimeMillis(); } catch (PathNotFoundException e) { out.println("<div class=\"warn\">PathNotFoundException: " + e.getMessage() + "</div>"); out.flush(); } catch (ItemExistsException e) { out.println("<div class=\"warn\">ItemExistsException: " + e.getMessage() + "</div>"); out.flush(); } catch (AccessDeniedException e) { out.println("<div class=\"warn\">AccessDeniedException: " + e.getMessage() + "</div>"); out.flush(); } catch (RepositoryException e) { out.println("<div class=\"warn\">RepositoryException: " + e.getMessage() + "</div>"); out.flush(); } catch (DatabaseException e) { out.println("<div class=\"warn\">DatabaseException: " + e.getMessage() + "</div>"); out.flush(); } catch (ExtensionException e) { out.println("<div class=\"warn\">ExtensionException: " + e.getMessage() + "</div>"); out.flush(); } catch (AutomationException e) { out.println("<div class=\"warn\">AutomationException: " + e.getMessage() + "</div>"); out.flush(); } out.println("<hr/>"); out.println("<b>Total size:</b> " + FormatUtil.formatSize(tStats.getSize()) + "<br/>"); out.println("<b>Total folders:</b> " + tStats.getFolders() + "<br/>"); out.println("<b>Total documents:</b> " + tStats.getDocuments() + "<br/>"); out.println("<b>Total time:</b> " + FormatUtil.formatSeconds(tEnd - tBegin) + "<br/>"); footer(out); out.flush(); out.close(); // Activity log UserActivity.log(request.getRemoteUser(), "ADMIN_BENCHMARK_OKM_IMPORT", null, null, "Size: " + FormatUtil.formatSize(tStats.getSize()) + ", Folders: " + tStats.getFolders() + ", Documents: " + tStats.getDocuments() + ", Time: " + FormatUtil.formatSeconds(tEnd - tBegin)); log.debug("okmImport: void"); }
From source file:edu.ucsd.library.xdre.web.CollectionOperationController.java
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String message = ""; Map<String, String[]> paramsMap = null; if (ServletFileUpload.isMultipartContent(request)) { paramsMap = new HashMap<String, String[]>(); paramsMap.putAll(request.getParameterMap()); FileItemFactory factory = new DiskFileItemFactory(); //Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); List items = null;// ww w .j ava 2 s.c o m InputStream in = null; ByteArrayOutputStream out = null; byte[] buf = new byte[4096]; List<String> dataItems = new ArrayList<String>(); List<String> fileNames = new ArrayList<String>(); try { items = upload.parseRequest(request); Iterator<FileItem> iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); out = new ByteArrayOutputStream(); if (item.isFormField()) { paramsMap.put(item.getFieldName(), new String[] { item.getString() }); } else { fileNames.add(item.getName()); in = item.getInputStream(); int bytesRead = -1; while ((bytesRead = in.read(buf)) > 0) { out.write(buf, 0, bytesRead); } dataItems.add(out.toString()); } } } catch (FileUploadException e) { throw new ServletException(e.getMessage()); } finally { if (in != null) { in.close(); in = null; } if (out != null) { out.close(); out = null; } } if (dataItems.size() > 0) { String[] a = new String[dataItems.size()]; paramsMap.put("data", dataItems.toArray(a)); paramsMap.put("fileName", fileNames.toArray(new String[dataItems.size()])); } } else paramsMap = request.getParameterMap(); String collectionId = getParameter(paramsMap, "category"); String activeButton = getParameter(paramsMap, "activeButton"); boolean dataConvert = getParameter(paramsMap, "dataConvert") != null; boolean isIngest = getParameter(paramsMap, "ingest") != null; boolean isDevUpload = getParameter(paramsMap, "devUpload") != null; boolean isBSJhoveReport = getParameter(paramsMap, "bsJhoveReport") != null; boolean isSolrDump = getParameter(paramsMap, "solrDump") != null || getParameter(paramsMap, "solrRecordsDump") != null; boolean isSerialization = getParameter(paramsMap, "serialize") != null; boolean isMarcModsImport = getParameter(paramsMap, "marcModsImport") != null; boolean isExcelImport = getParameter(paramsMap, "excelImport") != null; boolean isCollectionRelease = getParameter(paramsMap, "collectionRelease") != null; boolean isFileUpload = getParameter(paramsMap, "fileUpload") != null; String fileStore = getParameter(paramsMap, "fs"); if (activeButton == null || activeButton.length() == 0) activeButton = "validateButton"; HttpSession session = request.getSession(); session.setAttribute("category", collectionId); session.setAttribute("user", request.getRemoteUser()); String ds = getParameter(paramsMap, "ts"); if (ds == null || ds.length() == 0) ds = Constants.DEFAULT_TRIPLESTORE; if (fileStore == null || (fileStore = fileStore.trim()).length() == 0) fileStore = null; String forwardTo = "/controlPanel.do?ts=" + ds + (fileStore != null ? "&fs=" + fileStore : ""); if (dataConvert) forwardTo = "/pathMapping.do?ts=" + ds + (fileStore != null ? "&fs=" + fileStore : ""); else if (isIngest) { String unit = getParameter(paramsMap, "unit"); forwardTo = "/ingest.do?ts=" + ds + (fileStore != null ? "&fs=" + fileStore : "") + (unit != null ? "&unit=" + unit : ""); } else if (isDevUpload) forwardTo = "/devUpload.do?" + (fileStore != null ? "&fs=" + fileStore : ""); else if (isSolrDump) forwardTo = "/solrDump.do" + (StringUtils.isBlank(collectionId) ? "" : "#colsTab"); else if (isSerialization) forwardTo = "/serialize.do?" + (fileStore != null ? "&fs=" + fileStore : ""); else if (isMarcModsImport) forwardTo = "/marcModsImport.do?"; else if (isExcelImport) forwardTo = "/excelImport.do?"; else if (isCollectionRelease) forwardTo = "/collectionRelease.do?"; else if (isFileUpload) forwardTo = "/fileUpload.do?"; String[] emails = null; String user = request.getRemoteUser(); if ((!(getParameter(paramsMap, "solrRecordsDump") != null || isBSJhoveReport || isDevUpload || isFileUpload) && getParameter(paramsMap, "rdfImport") == null && getParameter(paramsMap, "externalImport") == null && getParameter(paramsMap, "dataConvert") == null) && getParameter(paramsMap, "marcModsImport") == null && getParameter(paramsMap, "excelImport") == null && (collectionId == null || (collectionId = collectionId.trim()).length() == 0)) { message = "Please choose a collection ..."; } else { String servletId = getParameter(paramsMap, "progressId"); boolean vRequest = false; try { vRequest = RequestOrganizer.setReferenceServlet(session, servletId, Thread.currentThread()); } catch (Exception e) { message = e.getMessage(); } if (!vRequest) { if (isSolrDump || isCollectionRelease || isFileUpload) session.setAttribute("message", message); else { forwardTo += "&activeButton=" + activeButton; forwardTo += "&message=" + message; } forwordPage(request, response, response.encodeURL(forwardTo)); return null; } session.setAttribute("status", "Processing request ..."); DAMSClient damsClient = null; try { //user = getUserName(request); //email = getUserEmail(request); damsClient = new DAMSClient(Constants.DAMS_STORAGE_URL); JSONArray mailArr = (JSONArray) damsClient.getUserInfo(user).get("mail"); if (mailArr != null && mailArr.size() > 0) { emails = new String[mailArr.size()]; mailArr.toArray(emails); } message = handleProcesses(paramsMap, request.getSession()); } catch (Exception e) { e.printStackTrace(); //throw new ServletException(e.getMessage()); message += "<br />Internal Error: " + e.getMessage(); } finally { if (damsClient != null) damsClient.close(); } } System.out.println("XDRE Manager execution for " + request.getRemoteUser() + " from IP " + request.getRemoteAddr() + ": "); System.out.println(message.replace("<br />", "\n")); try { int count = 0; String result = (String) session.getAttribute("result"); while (result != null && result.length() > 0 && count++ < 10) { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } result = (String) session.getAttribute("result"); } RequestOrganizer.clearSession(session); } catch (IllegalStateException e) { //e.printStackTrace(); } //send email try { String sender = Constants.MAILSENDER_DAMSSUPPORT; if (emails == null && user != null) { emails = new String[1]; emails[0] = user + "@ucsd.edu"; } if (emails == null) DAMSClient.sendMail(sender, new String[] { sender }, "DAMS Manager Invocation Result - " + Constants.CLUSTER_HOST_NAME.replace("http://", "").replace(".ucsd.edu/", ""), message, "text/html", "smtp.ucsd.edu"); else DAMSClient.sendMail(sender, emails, "DAMS Manager Invocation Result - " + Constants.CLUSTER_HOST_NAME.replace("http://", "").replace(".ucsd.edu/", ""), message, "text/html", "smtp.ucsd.edu"); } catch (AddressException e) { e.printStackTrace(); } catch (MessagingException e) { e.printStackTrace(); } if (isSolrDump || isMarcModsImport || isExcelImport || isCollectionRelease || isFileUpload) { session.setAttribute("message", message.replace("\n", "<br />")); if (collectionId != null && (isMarcModsImport || isExcelImport || isCollectionRelease)) forwardTo += "category=" + collectionId; } else { forwardTo += "&activeButton=" + activeButton; if (collectionId != null) forwardTo += "&category=" + collectionId; forwardTo += "&message=" + URLEncoder.encode(message.replace("\n", "<br />"), "UTF-8"); } System.out.println(forwardTo); //String forwardToUrl = "/controlPanel.do?category=" + collectionId + "&message=" + message + "&activeButton=" + activeButton; forwordPage(request, response, response.encodeURL(forwardTo)); return null; }
From source file:com.gtwm.pb.model.manageSchema.DatabaseDefn.java
public void removeReport(SessionDataInfo sessionData, HttpServletRequest request, Connection conn, BaseReportInfo reportToRemove) throws SQLException, DisallowedException, CantDoThatException, CodingErrorException, ObjectNotFoundException { TableInfo parentTable = reportToRemove.getParentTable(); // Can't remove the last report if (parentTable.getReports().size() == 1) { throw new CantDoThatException("Can't remove the last report"); }/* w w w . ja v a 2 s. c o m*/ // or the default report if (reportToRemove.equals(parentTable.getDefaultReport())) { throw new CantDoThatException("Can't remove the default report"); } Set<BaseReportInfo> dependentReports = this.getDependentReports((SimpleReportInfo) reportToRemove, request); if (dependentReports.size() > 0) { throw new CantDoThatException("Reports " + dependentReports + " depend on this one"); } Set<TableInfo> tablesReferencingReport = this.getTablesIncludingReferences(reportToRemove, request); if (tablesReferencingReport.size() > 0) { throw new CantDoThatException("Tables " + tablesReferencingReport + " reference data in this report"); } CompanyInfo company = this.authManager.getCompanyForLoggedInUser(request); for (TableInfo table : company.getTables()) { for (FormTabInfo formTab : table.getFormTabs()) { BaseReportInfo selectorReport = formTab.getSelectorReport(); if (selectorReport != null) { if (selectorReport.equals(reportToRemove)) { throw new CantDoThatException("The table " + table + " has a tab that uses this report"); } } } } parentTable.removeReport(reportToRemove); this.removeReportWithoutChecks(sessionData, request, reportToRemove, conn); UsageLogger usageLogger = new UsageLogger(this.relationalDataSource); AppUserInfo user = this.authManager.getUserByUserName(request, request.getRemoteUser()); usageLogger.logReportSchemaChange(user, reportToRemove, AppAction.REMOVE_REPORT, ""); UsageLogger.startLoggingThread(usageLogger); }
From source file:com.gtwm.pb.model.manageSchema.DatabaseDefn.java
public void updateCalculationInReport(HttpServletRequest request, Connection conn, SimpleReportInfo report, ReportCalcFieldInfo calculationField, String calculationName, String calculationDefn, DatabaseFieldType dbFieldType, boolean isReportHidden) throws DisallowedException, SQLException, ObjectNotFoundException, CantDoThatException, CodingErrorException { if (!(this.authManager.getAuthenticator().loggedInUserAllowedTo(request, PrivilegeType.MANAGE_TABLE, report.getParentTable()))) { throw new DisallowedException(this.authManager.getLoggedInUser(request), PrivilegeType.MANAGE_TABLE, report.getParentTable()); }//from w ww.j a va 2 s.co m HibernateUtil.activateObject(report); Savepoint savepoint = null; boolean definitionUpdate = false; if (!(calculationDefn.toLowerCase().equals(calculationField.getCalculationDefinition())) || !(dbFieldType.equals(calculationField.getDbType()))) { Map<TableInfo, Set<BaseReportInfo>> availableDataStores = this.getViewableDataStores(request); ((ReportCalcFieldDefn) calculationField).updateCalculationDefinition(calculationDefn, dbFieldType, availableDataStores); definitionUpdate = true; } else { ((ReportCalcFieldDefn) calculationField).setBaseFieldName(calculationName); calculationField.setReportHidden(isReportHidden); } if (definitionUpdate) { savepoint = conn.setSavepoint("updateCalculationSavepoint"); try { this.updateViewDbAction(conn, report, request); } catch (SQLException sqlex) { // detect aggregate functions if (sqlex.getMessage().contains("must appear in the GROUP BY clause") || sqlex.getMessage().contains("aggregates not allowed in GROUP BY clause")) { conn.rollback(savepoint); calculationField.setAggregateFunction(true); this.updateViewDbAction(conn, report, request); } else { throw sqlex; } } } UsageLogger usageLogger = new UsageLogger(this.relationalDataSource); AppUserInfo user = this.authManager.getUserByUserName(request, request.getRemoteUser()); usageLogger.logReportSchemaChange(user, report, AppAction.UPDATE_CALCULATION_IN_REPORT, "calculation name: " + calculationField.getFieldName()); UsageLogger.startLoggingThread(usageLogger); }
From source file:com.gtwm.pb.model.manageSchema.DatabaseDefn.java
public void saveChart(HttpServletRequest request, BaseReportInfo report, String summaryTitle) throws DisallowedException, CantDoThatException, ObjectNotFoundException { if (!(this.authManager.getAuthenticator().loggedInUserAllowedTo(request, PrivilegeType.MANAGE_TABLE, report.getParentTable()))) { throw new DisallowedException(this.authManager.getLoggedInUser(request), PrivilegeType.MANAGE_TABLE, report.getParentTable()); }/*from ww w . jav a 2 s.c o m*/ ChartInfo templateChart = report.getChart(); Set<ChartAggregateInfo> aggregates = templateChart.getAggregateFunctions(); Set<ChartGroupingInfo> groupings = templateChart.getGroupings(); if (aggregates.size() == 0) { throw new CantDoThatException("To save a report summary, it must contain one or more functions"); } HibernateUtil.activateObject(templateChart); ChartInfo savedChart = new ChartDefn(report, summaryTitle, true); HibernateUtil.currentSession().save(savedChart); // Move aggregates from template summary to new summary for (ChartAggregateInfo aggregate : aggregates) { savedChart.addFunction(aggregate); ChartAggregateInfo removedFunction = templateChart.removeFunction(aggregate.getInternalAggregateName()); } // Move groupings from template summary to new summary for (ChartGroupingInfo grouping : groupings) { savedChart.addGrouping(grouping.getGroupingReportField(), grouping.getGroupingModifier()); ChartGroupingInfo removedGrouping = templateChart.removeGrouping(grouping.getGroupingReportField()); } // Any date range filter savedChart.setChartFilter(templateChart.getChartFilter()); templateChart.setChartFilter(null); savedChart.setFilterReportField(templateChart.getFilterReportField()); templateChart.setFilterReportField(null); // Range (row limit) savedChart.setRangeDirection(templateChart.getRangeDirection()); templateChart.setRangeDirection(true); savedChart.setRangePercent(templateChart.getRangePercent()); templateChart.setRangePercent(100); // Summary title report.saveChart(savedChart); templateChart.setTitle(""); this.dataManagement.logLastSchemaChangeTime(request); UsageLogger usageLogger = new UsageLogger(this.relationalDataSource); AppUserInfo user = this.authManager.getUserByUserName(request, request.getRemoteUser()); usageLogger.logReportSchemaChange(user, report, AppAction.SAVE_CHART, "title: " + summaryTitle); UsageLogger.startLoggingThread(usageLogger); }