From: <rv...@us...> - 2010-01-19 18:05:50
|
Revision: 476 http://treebase.svn.sourceforge.net/treebase/?rev=476&view=rev Author: rvos Date: 2010-01-19 18:05:40 +0000 (Tue, 19 Jan 2010) Log Message: ----------- Added isReviewerAccessGranted static method, which is moved over from BaseFormController because the download controllers and the phylowidget controller also need access to it. Hence it is made into a static. Modified Paths: -------------- trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/ControllerUtil.java Modified: trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/ControllerUtil.java =================================================================== --- trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/ControllerUtil.java 2010-01-19 18:04:11 UTC (rev 475) +++ trunk/treebase-web/src/main/java/org/cipres/treebase/web/util/ControllerUtil.java 2010-01-19 18:05:40 UTC (rev 476) @@ -5,9 +5,12 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; +import org.cipres.treebase.TreebaseIDString; +import org.cipres.treebase.TreebaseUtil; import org.cipres.treebase.domain.admin.User; import org.cipres.treebase.domain.admin.UserService; import org.cipres.treebase.domain.matrix.Matrix; @@ -273,5 +276,44 @@ } return test; } + + /** + * This method looks up (and manipulates) two session attributes: + * <li>Constants.REVIEWER_AGREEMENT_ACCEPTED, whose value is a boolean. + * This attribute flags whether the reviewer has accepted the agreement + * regarding embargoed data.</li> + * <li>Constants.X_ACCESS_CODE, whose value is a string. This attribute + * stores the hashed ID string for the focal study.</li> + * @param req + * @return + */ + public static boolean isReviewerAccessGranted(HttpServletRequest req) { + boolean passedHashedIDCheck = false; + HttpSession session = req.getSession(); + if ( "cancel".equals(req.getParameter("agreement")) ) { + session.setAttribute(Constants.REVIEWER_AGREEMENT_ACCEPTED, false); + } + if ( "ok".equals(req.getParameter("agreement")) ) { + session.setAttribute(Constants.REVIEWER_AGREEMENT_ACCEPTED, true); + } + Object xAccesCodeObject = session.getAttribute(Constants.X_ACCESS_CODE); + if ( xAccesCodeObject != null ) { + String suppliedHashedID = xAccesCodeObject.toString(); + TreebaseIDString tbidstr = new TreebaseIDString(Study.class,Long.parseLong(req.getParameter("id"))); + if ( suppliedHashedID.equals(tbidstr.getNamespacedGUID().getHashedIDString()) ) { + passedHashedIDCheck = true; + Object agreementAccepted = session.getAttribute(Constants.REVIEWER_AGREEMENT_ACCEPTED); + if ( agreementAccepted == null || ((Boolean)agreementAccepted).booleanValue() == false ) { + LOGGER.info("Going to display agreement - agreement acceptance: "+agreementAccepted); + session.setAttribute("displayAgreement",true); + } + else { + LOGGER.info("Not displaying agreement"); + session.setAttribute("displayAgreement",false); + } + } + } + return passedHashedIDCheck; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |