/** * Returns all NEW projects submitted to this YRC member's group(s) * * @param researcherID The researcher ID of the YRC member * @return A list of new projects (within the last 30 days) for this member's groups, null if this * is not a YRC member */ public static List<Project> getNewProjectsForYRCMember(Researcher r) throws SQLException { int researcherID = r.getID(); Groups gm = Groups.getInstance(); // return null if they're not in a YRC group if (!gm.isInAGroup(researcherID)) return null; ProjectsSearcher ps = new ProjectsSearcher(); // ps.setResearcher(r); // Set the start date of the search to 1 month ago Calendar cal = GregorianCalendar.getInstance(); cal.add(Calendar.MONTH, -1); ps.setStartDate(cal.getTime()); // Set the groups to search List groups = gm.getGroups(); Iterator iter = groups.iterator(); while (iter.hasNext()) { String group = (String) (iter.next()); if (gm.isMember(researcherID, group)) { ps.addGroup(group); } } List<Project> projects = ps.search(); return projects; }
public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // User making this request User user = UserUtils.getUser(request); if (user == null) { ActionErrors errors = new ActionErrors(); errors.add("username", new ActionMessage("error.login.notloggedin")); saveErrors(request, errors); return mapping.findForward("authenticate"); } // Restrict access to researchers who are members of a group Groups groupMan = Groups.getInstance(); if (!groupMan.isInAGroup(user.getResearcher().getID())) { ActionErrors errors = new ActionErrors(); errors.add("access", new ActionMessage("error.access.invalidgroup")); saveErrors(request, errors); return mapping.findForward("standardHome"); } UploadMSDataForm newForm = new UploadMSDataForm(); if (groupMan.isMember(user.getResearcher().getID(), "administrators")) { newForm.setPipeline(Pipeline.TPP); newForm.setDataServer("local"); } else if (groupMan.isMember(user.getResearcher().getID(), "MacCoss")) { newForm.setPipeline(Pipeline.MACOSS); newForm.setDataServer("local"); } else { newForm.setPipeline(Pipeline.TPP); newForm.setDataServer("local"); } try { int projectID = Integer.parseInt(request.getParameter("projectID")); newForm.setProjectID(projectID); } catch (Exception e) { newForm.setProjectID(0); } request.setAttribute("uploadMSDataForm", newForm); // get a list of projects on which this researcher is listed List<ProjectLite> projects = ProjectLiteDAO.instance().getResearcherWritableProjects(user.getResearcher().getID()); Collections.sort( projects, new Comparator<ProjectLite>() { @Override public int compare(ProjectLite o1, ProjectLite o2) { return Integer.valueOf(o2.getId()).compareTo(o1.getId()); } }); request.getSession().setAttribute("researcherProjects", projects); // get a list of instruments available List<MsInstrument> instruments = DAOFactory.instance().getInstrumentDAO().loadAllInstruments(); request.getSession().setAttribute("instrumentList", instruments); // Kick it to the view page return mapping.findForward("Success"); }
public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // User making this request User user = UserUtils.getUser(request); if (user == null) { ActionErrors errors = new ActionErrors(); errors.add("username", new ActionMessage("error.login.notloggedin")); saveErrors(request, errors); return mapping.findForward("authenticate"); } // Restrict access to yrc members Groups groupMan = Groups.getInstance(); if (!groupMan.isInAGroup(user.getResearcher().getID())) { ActionErrors errors = new ActionErrors(); errors.add("access", new ActionMessage("error.access.invalidgroup")); saveErrors(request, errors); return mapping.findForward("Failure"); } try { Job job = MSJobFactory.getInstance().getJob(Integer.parseInt(request.getParameter("id"))); if (job == null) { ActionErrors errors = new ActionErrors(); errors.add( "general", new ActionMessage( "error.general.errorMessage", "No job found with ID " + request.getParameter("id"))); saveErrors(request, errors); return mapping.findForward("Failure"); } request.setAttribute("job", job); if (job instanceof MSJob) { int speciesId = ((MSJob) job).getTargetSpecies(); Species species = Species.getInstance(speciesId); request.setAttribute("species", species); request.setAttribute("experimentUploadJob", true); } else if (job instanceof MsAnalysisUploadJob) { request.setAttribute("analysisUploadJob", true); } else if (job instanceof PercolatorJob) { request.setAttribute("percolatorJob", true); } } catch (Exception e) { log.error("Error loading job with ID: " + request.getParameter("id"), e); ActionErrors errors = new ActionErrors(); errors.add( "general", new ActionMessage( "error.general.errorMessage", "Error reading job with ID: " + request.getParameter("id") + ". Error was: " + e.getMessage())); saveErrors(request, errors); return mapping.findForward("Failure"); } return mapping.findForward("Success"); }