Author: julien(a)jboss.com
Date: 2007-08-07 12:01:15 -0400 (Tue, 07 Aug 2007)
New Revision: 7867
Modified:
branches/JBoss_Portal_Branch_2_6/api/src/main/org/jboss/portal/Mode.java
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/default-object.xml
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/portlet-instances.xml
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_6/core/src/bin/portal-core-war/themes/renaissance/portal_style.css
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/content/InternalContentProvider.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/AbstractInstance.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/AbstractInstanceDefinition.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContainerContext.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContextImpl.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/persistent/PersistentInstanceContainerContext.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/persistent/PersistentInstanceCustomization.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/instance/InstanceSecurityInterceptor.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalMetaData.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/theme/WindowContextFactory.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portlet/JBossPortlet.java
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/conf/data/default-object.xml
branches/JBoss_Portal_Branch_2_6/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java
branches/JBoss_Portal_Branch_2_6/theme/src/main/org/jboss/portal/theme/page/WindowResult.java
Log:
JBPORTAL-1622:Implement "admin" portlet mode
Modified: branches/JBoss_Portal_Branch_2_6/api/src/main/org/jboss/portal/Mode.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/api/src/main/org/jboss/portal/Mode.java 2007-08-06
15:18:32 UTC (rev 7866)
+++ branches/JBoss_Portal_Branch_2_6/api/src/main/org/jboss/portal/Mode.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -48,6 +48,9 @@
public static final Mode EDIT_DEFAULTS = new Mode("edit_defaults");
/** . */
+ public static final Mode ADMIN = new Mode("admin");
+
+ /** . */
private String name;
public Mode(String name)
@@ -143,9 +146,13 @@
{
return Mode.HELP;
}
+ else if (Mode.ADMIN.name.equals(name))
+ {
+ return Mode.ADMIN;
+ }
else if (Mode.EDIT_DEFAULTS.name.equals(name))
{
- return Mode.VIEW;
+ return Mode.EDIT_DEFAULTS;
}
else
{
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/bin/portal-core-war/themes/renaissance/portal_style.css
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/bin/portal-core-war/themes/renaissance/portal_style.css 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/bin/portal-core-war/themes/renaissance/portal_style.css 2007-08-07
16:01:15 UTC (rev 7867)
@@ -672,6 +672,21 @@
text-decoration: none;
}
+.portlet-mode-admin {
+ background-image: url( images/ico_edit.gif );
+ background-repeat: no-repeat;
+ width: 28px;
+ height: 16px;
+ float: left;
+ display: inline;
+ cursor: pointer;
+ padding-left: 3px;
+}
+
+.portlet-mode-admin:hover {
+ text-decoration: none;
+}
+
.portlet-mode-remove {
background-image: url( images/ico_16_remove.gif );
background-repeat: no-repeat;
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/content/InternalContentProvider.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/content/InternalContentProvider.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/content/InternalContentProvider.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -25,6 +25,8 @@
import org.jboss.logging.Logger;
import org.jboss.portal.Mode;
import org.jboss.portal.WindowState;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManager;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManagerFactory;
import org.jboss.portal.core.aspects.portlet.AjaxInterceptor;
import org.jboss.portal.core.controller.ControllerContext;
import org.jboss.portal.core.controller.ControllerResponse;
@@ -35,6 +37,8 @@
import org.jboss.portal.core.model.content.ContentType;
import org.jboss.portal.core.model.content.spi.ContentProvider;
import org.jboss.portal.core.model.instance.Instance;
+import org.jboss.portal.core.model.instance.InstanceCustomization;
+import org.jboss.portal.core.model.instance.InstancePermission;
import org.jboss.portal.core.model.portal.Portal;
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.Window;
@@ -84,11 +88,24 @@
private String contentType;
/** . */
+ private PortalAuthorizationManagerFactory pamf;
+
+ /** . */
ContentType registeredContentType;
/** . */
ContentProvider contentProvider;
+ public PortalAuthorizationManagerFactory getPortalAuthorizationManagerFactory()
+ {
+ return pamf;
+ }
+
+ public void setPortalAuthorizationManagerFactory(PortalAuthorizationManagerFactory
portalAuthorizationManagerFactory)
+ {
+ this.pamf = portalAuthorizationManagerFactory;
+ }
+
public String getContentType()
{
return contentType;
@@ -237,6 +254,16 @@
}
//
+ InstancePermission perm = new InstancePermission(instance.getId(),
InstancePermission.ADMIN_ACTION);
+ PortalAuthorizationManager pam = pamf.getManager();
+ boolean authorized = pam.checkPermission(perm);
+ if (!authorized)
+ {
+ // Remove the modes that we know only admin are authorized to use
+ supportedModes.remove(Mode.ADMIN);
+ }
+
+ //
response = instance.invoke(invocation);
}
catch (PortletInvokerException e)
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/AbstractInstance.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/AbstractInstance.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/AbstractInstance.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -27,6 +27,7 @@
import org.jboss.portal.core.model.instance.InstanceCustomization;
import org.jboss.portal.core.model.instance.InstanceContainer;
import org.jboss.portal.core.model.instance.InstanceDefinition;
+import org.jboss.portal.core.model.instance.InstancePermission;
import org.jboss.portal.portlet.PortletContext;
import org.jboss.portal.portlet.PortletInvoker;
import org.jboss.portal.portlet.PortletInvokerException;
@@ -37,6 +38,8 @@
import org.jboss.portal.portlet.state.PropertyChange;
import org.jboss.portal.portlet.state.PropertyMap;
import org.jboss.portal.portlet.state.DestroyCloneFailure;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManager;
+import org.jboss.portal.Mode;
import java.util.Arrays;
import java.util.Set;
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/AbstractInstanceDefinition.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/AbstractInstanceDefinition.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/AbstractInstanceDefinition.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -48,15 +48,6 @@
protected final AccessMode getAccessMode()
{
-/*
- if (Mode.EDIT_DEFAULTS.equals(ctxabc.getMode()))
- {
- // Implement it by using the shared portlet id, but a security check should be
made on using this
- // mode first
- // Another idea is to shove that in the security interceptor
- throw new UnsupportedOperationException("Implement me");
- }
-*/
return AccessMode.READ_ONLY;
}
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContainerContext.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContainerContext.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContainerContext.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -23,6 +23,7 @@
package org.jboss.portal.core.impl.model.instance;
import org.jboss.portal.core.model.instance.DuplicateInstanceException;
+import org.jboss.portal.core.model.instance.InstancePermission;
import org.jboss.portal.portlet.PortletContext;
import java.util.Collection;
@@ -57,4 +58,6 @@
void updateInstanceDefinition(AbstractInstanceDefinition def, Set securityBindings);
+ boolean checkPermission(InstancePermission perm);
+
}
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContextImpl.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContextImpl.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContextImpl.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -41,7 +41,7 @@
protected final Instance instance;
/** . */
- protected final AccessMode accessMode;
+ protected AccessMode accessMode;
/** . */
protected PortletContext clonedContext;
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/persistent/PersistentInstanceContainerContext.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/persistent/PersistentInstanceContainerContext.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/persistent/PersistentInstanceContainerContext.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -28,6 +28,7 @@
import org.hibernate.exception.ConstraintViolationException;
import org.jboss.portal.jems.hibernate.ObjectContextualizer;
import org.jboss.portal.core.model.instance.DuplicateInstanceException;
+import org.jboss.portal.core.model.instance.InstancePermission;
import org.jboss.portal.core.impl.model.instance.AbstractInstance;
import org.jboss.portal.core.impl.model.instance.AbstractInstanceDefinition;
import org.jboss.portal.core.impl.model.instance.AbstractInstanceCustomization;
@@ -36,6 +37,10 @@
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.portlet.PortletContext;
import org.jboss.portal.security.RoleSecurityBinding;
+import org.jboss.portal.security.PortalSecurityException;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManagerFactory;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManager;
+import org.apache.log4j.Logger;
import EDU.oswego.cs.dl.util.concurrent.ConcurrentReaderHashMap;
import javax.naming.InitialContext;
@@ -51,6 +56,9 @@
{
/** . */
+ private static final Logger log =
Logger.getLogger(PersistentInstanceContainerContext.class);
+
+ /** . */
private static final String BY_INSTANCE_ID_QUERY = "from " +
Tools.getShortNameOf(PersistentInstanceDefinition.class) + " where
instanceId=:instanceId";
/** . */
@@ -343,4 +351,27 @@
//
session.flush();
}
+
+ public boolean checkPermission(InstancePermission perm)
+ {
+ if (container.getPerformSecurityChecks())
+ {
+ boolean result = false;
+ try
+ {
+ PortalAuthorizationManagerFactory pamf =
container.getPortalAuthorizationManagerFactory();
+ PortalAuthorizationManager manager = pamf.getManager();
+ result = manager.checkPermission(perm);
+ }
+ catch (PortalSecurityException e)
+ {
+ log.error("Cannot check instance permission", e);
+ }
+ return result;
+ }
+ else
+ {
+ return true;
+ }
+ }
}
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/persistent/PersistentInstanceCustomization.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/persistent/PersistentInstanceCustomization.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/impl/model/instance/persistent/PersistentInstanceCustomization.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -90,7 +90,7 @@
public String getId()
{
- return customizationId;
+ return owner.getInstanceId();
}
public String getCustomizationId()
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/instance/InstanceSecurityInterceptor.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/instance/InstanceSecurityInterceptor.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/instance/InstanceSecurityInterceptor.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -30,6 +30,7 @@
import org.jboss.portal.security.PortalSecurityException;
import org.jboss.portal.security.spi.auth.PortalAuthorizationManager;
import org.jboss.portal.security.spi.auth.PortalAuthorizationManagerFactory;
+import org.jboss.portal.Mode;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -61,10 +62,22 @@
{
try
{
+ // Compute the security mask
+ int mask = InstancePermission.VIEW_MASK;
+ Mode mode = invocation.getPortletContext().getMode();
+ if (Mode.ADMIN.equals(mode))
+ {
+ mask |= InstancePermission.ADMIN_MASK;
+ }
+
+ //
String instanceid =
(String)invocation.getAttribute(PortletInvocation.INVOCATION_SCOPE,
Instance.INSTANCE_ID_ATTRIBUTE);
PortalAuthorizationManager pam = pamf.getManager();
- InstancePermission perm = new InstancePermission(instanceid,
InstancePermission.VIEW_MASK);
+ InstancePermission perm = new InstancePermission(instanceid, mask);
boolean authorized = pam.checkPermission(perm);
+
+ //
+ //
if (trace)
{
log.trace("Access granted=" + authorized + " for instance
" + instanceid);
@@ -83,5 +96,4 @@
throw new InvocationException(e);
}
}
-
}
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalMetaData.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalMetaData.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalMetaData.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -52,6 +52,7 @@
modes.add("edit");
modes.add("view");
modes.add("help");
+ modes.add("admin");
windowStates = new WindowStatesMetaData();
windowStates.add("maximized");
windowStates.add("minimized");
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/theme/WindowContextFactory.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/theme/WindowContextFactory.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/theme/WindowContextFactory.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -102,7 +102,7 @@
WindowState windowState = (WindowState)j.next();
String url = createUpdateNavigationalStateURL(window, null, windowState);
boolean disabled = windowState.equals(currentWindowState);
- WindowResult.Action action = new WindowResult.Action(windowState.toString(),
url, !disabled);
+ WindowResult.Action action = new WindowResult.Action(windowState.toString(),
"window_state", url, !disabled);
windowStates.add(action);
}
actionMap.put(ActionRendererContext.WINDOWSTATES_KEY, windowStates);
@@ -120,7 +120,7 @@
Mode mode = (Mode)j.next();
String url = createUpdateNavigationalStateURL(window, mode, null);
boolean disabled = mode.equals(currentMode);
- WindowResult.Action action = new WindowResult.Action(mode.toString(), url,
!disabled);
+ WindowResult.Action action = new WindowResult.Action(mode.toString(),
"mode", url, !disabled);
modes.add(action);
}
actionMap.put(ActionRendererContext.MODES_KEY, modes);
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portlet/JBossPortlet.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portlet/JBossPortlet.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portlet/JBossPortlet.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -57,9 +57,13 @@
public class JBossPortlet implements Portlet
{
+ /** . */
private static final Class[] ACTION_LOOKUP = new Class[]{JBossActionRequest.class,
JBossActionResponse.class};
/** . */
+ private static final PortletMode ADMIN = new PortletMode("admin");
+
+ /** . */
private PortletConfig config;
public JBossPortlet()
@@ -133,6 +137,10 @@
{
processEdit(req, resp);
}
+ else if (ADMIN.equals(portletMode))
+ {
+ processAdmin(req, resp);
+ }
}
/** Default doEdit method that works in coordination with
doEdit(JBossRenderRequest,JBossRenderResponse). */
@@ -164,6 +172,14 @@
/**
*
*/
+ public void processAdmin(JBossActionRequest req, JBossActionResponse resp) throws
PortletException, PortletSecurityException, IOException
+ {
+ throw new PortletException();
+ }
+
+ /**
+ *
+ */
public void processView(JBossActionRequest req, JBossActionResponse resp) throws
PortletException, PortletSecurityException, IOException
{
// Try to locate specific operation
@@ -249,6 +265,10 @@
{
doEdit(request, response);
}
+ else if (ADMIN.equals(portletMode))
+ {
+ doAdmin(request, response);
+ }
}
}
@@ -272,7 +292,6 @@
//
PortletURL url = response.createActionURL();
- url.setPortletMode(PortletMode.EDIT);
//
writer.print("<table> " +
@@ -327,6 +346,12 @@
"</form></table>");
}
+ /** Throw a <code>PortletException</code>. */
+ protected void doAdmin(JBossRenderRequest request, JBossRenderResponse response)
throws PortletException, PortletSecurityException, IOException
+ {
+ throw new PortletException();
+ }
+
public ResourceBundle getResourceBundle(Locale locale)
{
return getPortletConfig().getResourceBundle(locale);
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/META-INF/jboss-service.xml 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/META-INF/jboss-service.xml 2007-08-07
16:01:15 UTC (rev 7867)
@@ -683,6 +683,9 @@
<depends
optional-attribute-name="InstanceContainer"
proxy-type="attribute">portal:container=Instance</depends>
+ <depends
+ optional-attribute-name="PortalAuthorizationManagerFactory"
+
proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
</mbean>
<!-- Integrate identity -->
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/conf/data/default-object.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/conf/data/default-object.xml 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/conf/data/default-object.xml 2007-08-07
16:01:15 UTC (rev 7867)
@@ -320,6 +320,7 @@
<mode>view</mode>
<mode>edit</mode>
<mode>help</mode>
+ <mode>admin</mode>
</supported-modes>
<supported-window-states>
<window-state>normal</window-state>
Modified:
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/default-object.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/default-object.xml 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/default-object.xml 2007-08-07
16:01:15 UTC (rev 7867)
@@ -289,6 +289,21 @@
<height>0</height>
</window>
</page>
+ <page>
+ <page-name>mode test</page-name>
+ <window>
+ <window-name>CatalogPortletWindow</window-name>
+ <instance-ref>CatalogPortletInstance</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>ModePortletWindow</window-name>
+ <instance-ref>ModePortletInstance</instance-ref>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ </page>
</page>
</deployment>
<deployment>
@@ -557,6 +572,21 @@
<height>0</height>
</window>
</page>
+ <page>
+ <page-name>mode test</page-name>
+ <window>
+ <window-name>CatalogPortletWindow</window-name>
+ <instance-ref>CatalogPortletInstance</instance-ref>
+ <region>left</region>
+ <height>0</height>
+ </window>
+ <window>
+ <window-name>ModePortletWindow</window-name>
+ <instance-ref>ModePortletInstance</instance-ref>
+ <region>center</region>
+ <height>0</height>
+ </window>
+ </page>
</page>
</deployment>
</deployments>
Modified:
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/portlet-instances.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/portlet-instances.xml 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/portlet-instances.xml 2007-08-07
16:01:15 UTC (rev 7867)
@@ -29,6 +29,18 @@
<deployments>
<deployment>
<instance>
+ <instance-id>ModePortletInstance</instance-id>
+ <portlet-ref>ModePortlet</portlet-ref>
+ <security-constraint>
+ <policy-permission>
+ <role-name>Admin</role-name>
+ <action-name>admin</action-name>
+ </policy-permission>
+ </security-constraint>
+ </instance>
+ </deployment>
+ <deployment>
+ <instance>
<instance-id>EventPortletInstance</instance-id>
<portlet-ref>EventPortlet</portlet-ref>
</instance>
Modified:
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/portlet.xml 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/core-samples/src/resources/portal-basic-samples-war/WEB-INF/portlet.xml 2007-08-07
16:01:15 UTC (rev 7867)
@@ -28,6 +28,42 @@
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1...
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
version="1.0">
<portlet>
+ <description>Mode Portlet</description>
+ <portlet-name>ModePortlet</portlet-name>
+ <display-name>Mode Portlet</display-name>
+
<portlet-class>org.jboss.portal.core.samples.basic.ModePortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ <portlet-mode>EDIT</portlet-mode>
+ <portlet-mode>ADMIN</portlet-mode>
+ </supports>
+ <portlet-info>
+ <title>Mode Portlet</title>
+ <keywords>sample,test</keywords>
+ </portlet-info>
+ <portlet-preferences>
+ <preference>
+ <name>foo</name>
+ <value>bar</value>
+ </preference>
+ </portlet-preferences>
+ </portlet>
+ <portlet>
+ <description>Portlet to test modification of head
content</description>
+ <portlet-name>HeaderContentPortlet</portlet-name>
+ <display-name>Header Content Portlet</display-name>
+
+
<portlet-class>org.jboss.portal.core.samples.basic.HeaderContentPortlet</portlet-class>
+ <supports>
+ <mime-type>text/html</mime-type>
+ </supports>
+ <portlet-info>
+ <title>Header Content portlet</title>
+ <keywords>sample,test</keywords>
+ </portlet-info>
+ </portlet>
+ <portlet>
<description>Event Portlet</description>
<portlet-name>EventPortlet</portlet-name>
<display-name>Event Portlet</display-name>
@@ -38,7 +74,7 @@
</supports>
<portlet-info>
<title>Portal Node Event Listener</title>
- <keywords>event, sample,test</keywords>
+ <keywords>sample,test</keywords>
</portlet-info>
</portlet>
<portlet>
@@ -309,6 +345,9 @@
<keywords>sample,test</keywords>
</portlet-info>
</portlet>
+ <custom-portlet-mode>
+ <name>admin</name>
+ </custom-portlet-mode>
<user-attribute>
<name>user.name.nickName</name>
</user-attribute>
Modified:
branches/JBoss_Portal_Branch_2_6/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/theme/src/main/org/jboss/portal/theme/impl/render/div/DivDecorationRenderer.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -117,6 +117,7 @@
modeOrState2Index.put(Mode.EDIT, new Integer(98));
modeOrState2Index.put(Mode.HELP, new Integer(99));
modeOrState2Index.put(Mode.VIEW, new Integer(100));
+ modeOrState2Index.put(Mode.ADMIN, new Integer(101));
modeOrState2Index.put(WindowState.MINIMIZED, new Integer(198));
modeOrState2Index.put(WindowState.NORMAL, new Integer(199));
modeOrState2Index.put(WindowState.MAXIMIZED, new Integer(200));
Modified:
branches/JBoss_Portal_Branch_2_6/theme/src/main/org/jboss/portal/theme/page/WindowResult.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/theme/src/main/org/jboss/portal/theme/page/WindowResult.java 2007-08-06
15:18:32 UTC (rev 7866)
+++
branches/JBoss_Portal_Branch_2_6/theme/src/main/org/jboss/portal/theme/page/WindowResult.java 2007-08-07
16:01:15 UTC (rev 7867)
@@ -136,6 +136,9 @@
public static class Action implements ActionRendererContext
{
/** The origin of the action. */
+ private final String name;
+
+ /** The origin of the action. */
private final String family;
/** The action url. */
@@ -144,8 +147,9 @@
/** Enabled or not. */
private final boolean enabled;
- public Action(String family, String url, boolean enabled)
+ public Action(String name, String family, String url, boolean enabled)
{
+ this.name = name;
this.family = family;
this.url = url;
this.enabled = enabled;
@@ -153,7 +157,7 @@
public String getName()
{
- return family;
+ return name;
}
public String getFamily()