From: <rv...@us...> - 2010-01-12 17:18:49
|
Revision: 415 http://treebase.svn.sourceforge.net/treebase/?rev=415&view=rev Author: rvos Date: 2010-01-12 17:18:04 +0000 (Tue, 12 Jan 2010) Log Message: ----------- Added boolean isReviewerAccessGranted(req) method, which checks whether the access has been granted through the special URL for reviewers Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/BaseFormController.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/BaseFormController.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/BaseFormController.java 2010-01-12 17:08:47 UTC (rev 414) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/controllers/BaseFormController.java 2010-01-12 17:18:04 UTC (rev 415) @@ -12,6 +12,12 @@ import javax.servlet.http.HttpServletResponse; import org.apache.log4j.Logger; +import org.cipres.treebase.NamespacedGUID; +import org.cipres.treebase.TreebaseIDString; +import org.cipres.treebase.TreebaseUtil; +import org.cipres.treebase.domain.study.Study; +import org.cipres.treebase.web.Constants; +import org.cipres.treebase.web.util.ControllerUtil; import org.springframework.beans.propertyeditors.CustomDateEditor; import org.springframework.beans.propertyeditors.CustomNumberEditor; import org.springframework.validation.BindException; @@ -138,17 +144,32 @@ @Override protected ModelAndView showForm( - HttpServletRequest pArg0, - HttpServletResponse pArg1, - BindException pArg2, - Map pArg3) throws Exception { - if (isAuthorizationChecked()) { - return super.showForm(pArg0, pArg1, pArg2, pArg3); + HttpServletRequest pRequest, + HttpServletResponse pResponse, + BindException pBindException, + Map pMap) throws Exception { + if (isAuthorizationChecked() || isReviewerAccessGranted(pRequest)) { + return super.showForm(pRequest, pResponse, pBindException, pMap); } else { return new ModelAndView(AUTHORIZATION_VIOLATION_VIEW); } } + private boolean isReviewerAccessGranted(HttpServletRequest pRequest) { + boolean reviewerAccessGranted = false; + String storedHashedStudyId = pRequest.getSession().getAttribute(Constants.X_ACCESS_CODE).toString(); + if ( ! TreebaseUtil.isEmpty(storedHashedStudyId) ) { + Long studyId = ControllerUtil.getStudyId(pRequest); + TreebaseIDString treebaseIDString = new TreebaseIDString(Study.class,studyId); + NamespacedGUID namespacedGUID = treebaseIDString.getNamespacedGUID(); + String computedHashedStudyId = namespacedGUID.getHashedIDString(); + if ( storedHashedStudyId.equals(computedHashedStudyId) ) { + reviewerAccessGranted = true; + } + } + return reviewerAccessGranted; + } + protected ModelAndView setAttributeAndShowForm( HttpServletRequest request, HttpServletResponse response, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |