|
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.
|