taylor 2004/03/29 13:02:29 Modified: src/java/org/apache/jetspeed/portal/controls AbstractPortletControl.java VelocityPortletControl.java src/java/org/apache/jetspeed/portal/security/portlets PortletWrapper.java src/java/org/apache/jetspeed/services/portaltoolkit JetspeedPortalToolkitService.java Log: Enhancement to NOT display the control decorator in view mode if the current security context does not allow access to the portlet I will next make this check optional for backward compatibility Revision Changes Path 1.21 +22 -3 jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controls/AbstractPortletControl.java Index: AbstractPortletControl.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controls/AbstractPortletControl.java,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- AbstractPortletControl.java 23 Feb 2004 03:25:35 -0000 1.20 +++ AbstractPortletControl.java 29 Mar 2004 21:02:29 -0000 1.21 @@ -33,6 +33,7 @@ import org.apache.jetspeed.portal.PortletController; import org.apache.jetspeed.portal.PortletException; import org.apache.jetspeed.portal.portlets.AbstractPortlet; +import org.apache.jetspeed.portal.security.portlets.PortletWrapper; import org.apache.jetspeed.services.Registry; import org.apache.jetspeed.services.JetspeedSecurity; import org.apache.jetspeed.util.MimeType; @@ -43,6 +44,7 @@ // ECS imports import org.apache.ecs.ElementContainer; import org.apache.ecs.ConcreteElement; +import org.apache.ecs.StringElement; /** * The PortletControl acts both as a decoration around a Portlet or PortletSet @@ -332,8 +334,25 @@ */ public ConcreteElement getContent(RunData rundata) { - if (getPortlet()==null) return new ElementContainer(); - return getPortlet().getContent( rundata ); + Portlet portlet = getPortlet(); + if (portlet == null) + { + return new ElementContainer(); + } + + // Check to see if the portlet allows view + // If the current security context disallows view, + // do not display the portlet OR the control decorator + if (portlet instanceof PortletWrapper) + { + PortletWrapper wrapper = (PortletWrapper)portlet; + if (!wrapper.getAllowView(rundata)) + { + return new StringElement(""); + } + } + + return portlet.getContent( rundata ); } /** 1.28 +14 -1 jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controls/VelocityPortletControl.java Index: VelocityPortletControl.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/controls/VelocityPortletControl.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- VelocityPortletControl.java 23 Mar 2004 21:08:14 -0000 1.27 +++ VelocityPortletControl.java 29 Mar 2004 21:02:29 -0000 1.28 @@ -24,6 +24,7 @@ // Jetspeed stuff import org.apache.jetspeed.portal.Portlet; import org.apache.jetspeed.portal.PortletState; +import org.apache.jetspeed.portal.security.portlets.PortletWrapper; import org.apache.jetspeed.services.TemplateLocator; import org.apache.jetspeed.services.logging.JetspeedLogFactoryService; import org.apache.jetspeed.services.logging.JetspeedLogger; @@ -94,6 +95,18 @@ { Portlet portlet = getPortlet(); JetspeedRunData jdata = (JetspeedRunData)rundata; + + // Check to see if the portlet allows view + // If the current security context disallows view, + // do not display the portlet OR the control decorator + if (portlet instanceof PortletWrapper) + { + PortletWrapper wrapper = (PortletWrapper)portlet; + if (!wrapper.getAllowView(rundata)) + { + return new StringElement(""); + } + } // Create a new Velocity context and load default // application pull tools 1.24 +8 -1 jakarta-jetspeed/src/java/org/apache/jetspeed/portal/security/portlets/PortletWrapper.java Index: PortletWrapper.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/security/portlets/PortletWrapper.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- PortletWrapper.java 23 Feb 2004 03:27:46 -0000 1.23 +++ PortletWrapper.java 29 Mar 2004 21:02:29 -0000 1.24 @@ -210,6 +210,13 @@ } /** + */ + public boolean getAllowView(RunData rundata) + { + return checkPermission(rundata, JetspeedSecurity.PERMISSION_VIEW); + } + + /** */ public boolean getAllowMaximize(RunData rundata) { 1.33 +2 -2 jakarta-jetspeed/src/java/org/apache/jetspeed/services/portaltoolkit/JetspeedPortalToolkitService.java Index: JetspeedPortalToolkitService.java =================================================================== RCS file: /home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/portaltoolkit/JetspeedPortalToolkitService.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- JetspeedPortalToolkitService.java 23 Feb 2004 03:34:14 -0000 1.32 +++ JetspeedPortalToolkitService.java 29 Mar 2004 21:02:29 -0000 1.33 @@ -513,7 +513,7 @@ } /** - * Associates a PortletControl wit an existing Portlet and + * Associates a PortletControl with an existing Portlet and * returns the Control * * @param pc the existing PortletControl
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]