Example usage for javax.servlet.http HttpServletRequest getRemoteUser

List of usage examples for javax.servlet.http HttpServletRequest getRemoteUser

Introduction

In this page you can find the example usage for javax.servlet.http HttpServletRequest getRemoteUser.

Prototype

public String getRemoteUser();

Source Link

Document

Returns the login of the user making this request, if the user has been authenticated, or null if the user has not been authenticated.

Usage

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);
}