You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2006/02/11 21:10:59 UTC
svn commit: r377039 -
/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java
Author: ate
Date: Sat Feb 11 12:10:57 2006
New Revision: 377039
URL: http://svn.apache.org/viewcvs?rev=377039&view=rev
Log:
Creating a PageActionAccess component and storing it in the session is now centralized and done only by the ProfilerVavle,
right after the page has been resolved.
See http://issues.apache.org/jira/browse/JS2-468.
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java
Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java?rev=377039&r1=377038&r2=377039&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java (original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/profiler/impl/ProfilerValveImpl.java Sat Feb 11 12:10:57 2006
@@ -21,12 +21,14 @@
import java.util.Map;
import javax.security.auth.Subject;
-import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.jetspeed.PortalReservedParameters;
+import org.apache.jetspeed.decoration.PageActionAccess;
import org.apache.jetspeed.om.page.ContentPageImpl;
+import org.apache.jetspeed.om.page.Page;
import org.apache.jetspeed.page.PageManager;
import org.apache.jetspeed.page.document.NodeNotFoundException;
import org.apache.jetspeed.pipeline.PipelineException;
@@ -69,6 +71,11 @@
public static final String PROFILED_PAGE_CONTEXT_ATTR_KEY = "org.apache.jetspeed.profiledPageContext";
/**
+ * session key for storing map of PageActionAccess instances
+ */
+ private static final String PAGE_ACTION_ACCESS_MAP_SESSION_ATTR_KEY = "org.apache.jetspeed.profiler.pageActionAccessMap";
+
+ /**
* profiler - profiler component
*/
private Profiler profiler;
@@ -206,6 +213,8 @@
// request
request.setPage(new ContentPageImpl(requestContext.getManagedPage()));
request.setProfileLocators(requestContext.getLocators());
+
+ request.setAttribute(PortalReservedParameters.PAGE_EDIT_ACCESS_ATTRIBUTE,getPageActionAccess(request));
}
// continue
@@ -260,6 +269,50 @@
log.error("Exception in request pipeline: " + e.getMessage(), e);
throw new PipelineException(e.toString(), e);
}
+ }
+
+ /**
+ * Returns the <code>PageActionAccess</code> for the current user request.
+ * @see PageActionAccess
+ * @param requestContext RequestContext of the current portal request.
+ * @return PageActionAccess for the current user request.
+ */
+ protected PageActionAccess getPageActionAccess(RequestContext requestContext)
+ {
+ Page page = requestContext.getPage();
+ String key = page.getId();
+ boolean loggedOn = requestContext.getRequest().getUserPrincipal() != null;
+ boolean anonymous = !loggedOn;
+ PageActionAccess pageActionAccess = null;
+
+ Map sessionActions = null;
+ synchronized (this)
+ {
+ sessionActions = (Map) requestContext.getSessionAttribute(PAGE_ACTION_ACCESS_MAP_SESSION_ATTR_KEY);
+ if (sessionActions == null)
+ {
+ sessionActions = new HashMap();
+ requestContext.setSessionAttribute(PAGE_ACTION_ACCESS_MAP_SESSION_ATTR_KEY, sessionActions);
+ }
+ else
+ {
+ pageActionAccess = (PageActionAccess) sessionActions.get(key);
+ }
+ }
+ synchronized (sessionActions)
+ {
+ if (pageActionAccess == null)
+ {
+ pageActionAccess = new PageActionAccess(anonymous, page);
+ sessionActions.put(key, pageActionAccess);
+ }
+ else
+ {
+ pageActionAccess.checkReset(anonymous, page);
+ }
+ }
+
+ return pageActionAccess;
}
public String toString()
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org