Author: szimano Date: 2005-11-08 19:26:34 -0500 (Tue, 08 Nov 2005) New Revision: 1536 Added: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/portlet/JBossLabsPortlet.java Modified: trunk/forge/portal-extensions/forge-freezone/src/java/org/jboss/forge/projects/freezone/Freezone.java trunk/forge/portal-extensions/forge-portal-attr/project.xml Log: Added JBossLabsPortlet to provide permision check for a portlet. Startet implementing it in Freezone http://jira.jboss.com/jira/browse/JBLAB-396 Added: trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/portlet/JBossLabsPortlet.java =================================================================== --- trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/portlet/JBossLabsPortlet.java 2005-11-08 22:14:46 UTC (rev 1535) +++ trunk/forge/portal-extensions/forge-common/src/java/org/jboss/forge/common/portlet/JBossLabsPortlet.java 2005-11-09 00:26:34 UTC (rev 1536) @@ -0,0 +1,37 @@ +package org.jboss.forge.common.portlet; + +import java.io.IOException; + +import javax.portlet.PortletException; +import javax.portlet.PortletSecurityException; + +import org.jboss.portlet.JBossPortlet; +import org.jboss.portlet.JBossRenderRequest; +import org.jboss.portlet.JBossRenderResponse; + +public abstract class JBossLabsPortlet extends JBossPortlet { + + private final static String errorMsg = "403 - not authorized<br />I'm sorry but you need to login to view this page."; + + protected abstract boolean checkPermision(JBossRenderRequest request, JBossRenderResponse response); + + protected abstract void labsDoView(JBossRenderRequest request, JBossRenderResponse response) throws PortletException, PortletSecurityException, IOException; + + @Override + protected final void doView(JBossRenderRequest request, JBossRenderResponse response) throws PortletException, PortletSecurityException, IOException { + if (checkPermision(request, response)) { + labsDoView(request, response); + } + else { + //show error message + showErrorMessage(response); + } + } + + + private void showErrorMessage(JBossRenderResponse response) throws IOException{ + response.setContentType("text/html"); + response.getWriter().write(errorMsg); + } + +} Modified: trunk/forge/portal-extensions/forge-freezone/src/java/org/jboss/forge/projects/freezone/Freezone.java =================================================================== --- trunk/forge/portal-extensions/forge-freezone/src/java/org/jboss/forge/projects/freezone/Freezone.java 2005-11-08 22:14:46 UTC (rev 1535) +++ trunk/forge/portal-extensions/forge-freezone/src/java/org/jboss/forge/projects/freezone/Freezone.java 2005-11-09 00:26:34 UTC (rev 1536) @@ -27,17 +27,18 @@ import javax.portlet.PortletSecurityException; import org.jboss.forge.common.ForgeHelper; +import org.jboss.forge.common.portlet.JBossLabsPortlet; import org.jboss.forge.common.projects.ProjectsHelper; import org.jboss.forge.common.projects.permissions.ActionRequestPermissionsChecker; import org.jboss.portal.core.CoreConstants; import org.jboss.portlet.JBossActionRequest; import org.jboss.portlet.JBossActionResponse; -import org.jboss.portlet.JBossPortlet; import org.jboss.portlet.JBossRenderRequest; import org.jboss.portlet.JBossRenderResponse; import org.jboss.shotoku.ContentManager; import org.jboss.shotoku.Node; import org.jboss.shotoku.aop.Inject; +import org.jboss.shotoku.aop.NodeInject; import org.jboss.shotoku.exceptions.ResourceDoesNotExist; /** @@ -45,7 +46,7 @@ * * @author adamw */ -public class Freezone extends JBossPortlet { +public class Freezone extends JBossLabsPortlet { /** * <code>DEFAULT_PAGE</code> - Name of the page that is displayed if no * page is selected. @@ -59,12 +60,15 @@ @Inject private ContentManager cm; + @NodeInject ("/default/freezone/forcelogin.xml") + private Node configuration; + private void sendResponseNotFound(JBossRenderResponse response) throws IOException { response.setContentType("text/html"); response.getWriter().println("404 - Not found."); } - public void doView(JBossRenderRequest request, JBossRenderResponse response) + public void labsDoView(JBossRenderRequest request, JBossRenderResponse response) throws IOException { String requestedPath = request.getParameter(PATH_PARAM); @@ -170,6 +174,8 @@ cmsPath += DEFAULT_PAGE; } + System.out.println(cmsPath); + // Getting the node and its content type. If it the same as the // content type of the response, passing it for rendering. Otherwise, // sending bytes. @@ -187,4 +193,15 @@ response.sendRedirect("/" + ForgeHelper.FILE_ACCESS_DIR + "/" + cmsPath); } } + + @Override + protected boolean checkPermision(JBossRenderRequest request, JBossRenderResponse response) { + // TODO Auto-generated method stub + return true; + } + + @Override + public void init() throws PortletException { + //TODO read configuration file + } } Modified: trunk/forge/portal-extensions/forge-portal-attr/project.xml =================================================================== --- trunk/forge/portal-extensions/forge-portal-attr/project.xml 2005-11-08 22:14:46 UTC (rev 1535) +++ trunk/forge/portal-extensions/forge-portal-attr/project.xml 2005-11-09 00:26:34 UTC (rev 1536) @@ -36,8 +36,17 @@ <version>1.0</version> <jar>activation.jar</jar> </dependency> + + <dependency> + <groupId>jboss</groupId> + <artifactId>jboss-common</artifactId> + <version>1.0</version> + <jar>jboss-common.jar</jar> + </dependency> </dependencies> + + <build> <sourceDirectory>src/java</sourceDirectory> </build> |