From: <rv...@us...> - 2010-01-19 18:04:17
|
Revision: 475 http://treebase.svn.sourceforge.net/treebase/?rev=475&view=rev Author: rvos Date: 2010-01-19 18:04:11 +0000 (Tue, 19 Jan 2010) Log Message: ----------- Added a child override of handleRequest which verifies access rights before handing over to super.handleRequest or redirection to an authorization violation view. Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchMapToPhyloWidgetController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchMapToPhyloWidgetController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchMapToPhyloWidgetController.java 2010-01-19 18:02:17 UTC (rev 474) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/SearchMapToPhyloWidgetController.java 2010-01-19 18:04:11 UTC (rev 475) @@ -1,5 +1,61 @@ package org.cipres.treebase.web.controllers; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.cipres.treebase.domain.study.Study; +import org.cipres.treebase.domain.study.StudyService; +import org.cipres.treebase.domain.study.SubmissionHome; +import org.cipres.treebase.domain.tree.PhyloTree; +import org.cipres.treebase.domain.tree.TreeBlock; +import org.cipres.treebase.web.util.ControllerUtil; +import org.springframework.web.servlet.ModelAndView; + class SearchMapToPhyloWidgetController extends DirectMapToPhyloWidgetController { - // Empty subclass + private SubmissionHome mSubmissionHome; + private StudyService mStudyService; + + public SubmissionHome getSubmissionHome() { + return mSubmissionHome; + } + + public void setSubmissionHome(SubmissionHome pSubmissionHome) { + mSubmissionHome = pSubmissionHome; + } + + public ModelAndView handleRequest(HttpServletRequest pRequest, HttpServletResponse pResponse) + throws Exception { + Study study = null; + if (pRequest.getParameter("treeid") != null) { + String treeId = pRequest.getParameter("treeid"); + PhyloTree tree = getPhyloTreeService().findByID(Long.parseLong(treeId)); + study = tree.getStudy(); + } + if (pRequest.getParameter("treeblockid") != null) { + String treeBlockId = pRequest.getParameter("treeblockid"); + Long value = Long.parseLong(treeBlockId); + TreeBlock treeBlock = getPhyloTreeHome().findTreeBlockById(value); + study = getSubmissionHome().findByTreeBlock(treeBlock).getStudy(); + } + if ( ControllerUtil.isReviewerAccessGranted(pRequest) || ( study != null && study.isPublished() ) ) { + return super.handleRequest(pRequest, pResponse); + } + else { + return new ModelAndView("redirect:/accessviolation.html"); + } + } + + /** + * @param mStudyService the mStudyService to set + */ + public void setStudyService(StudyService mStudyService) { + this.mStudyService = mStudyService; + } + + /** + * @return the mStudyService + */ + public StudyService getStudyService() { + return mStudyService; + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |