Author: thomas.heute(a)jboss.com
Date: 2007-08-13 10:51:23 -0400 (Mon, 13 Aug 2007)
New Revision: 7901
Modified:
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/PortalAction.java
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/DefaultPortalCommandFactory.java
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/META-INF/jboss-service.xml
Log:
- Fixed default portal / default page behavior
- JBPORTAL-1324: Multiple portals / custom url : set the default portal name
- JBPORTAL-1616: Portal link should redirect to the default page of the default portal
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java 2007-08-13
07:45:45 UTC (rev 7900)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/aspects/controller/PageCustomizerInterceptor.java 2007-08-13
14:51:23 UTC (rev 7901)
@@ -42,6 +42,7 @@
import org.jboss.portal.core.model.portal.Page;
import org.jboss.portal.core.model.portal.Portal;
import org.jboss.portal.core.model.portal.PortalObject;
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
import org.jboss.portal.core.model.portal.PortalObjectId;
import org.jboss.portal.core.model.portal.PortalObjectPermission;
import org.jboss.portal.core.model.portal.PortalObjectPath;
@@ -80,7 +81,7 @@
private static Logger log = Logger.getLogger(PageCustomizerInterceptor.class);
/** . */
- private static final PortalObjectId defaultPortalId =
PortalObjectId.parse("/default/default", PortalObjectPath.CANONICAL_FORMAT);
+ private static final PortalObjectId defaultPortalId =
PortalObjectId.parse("/", PortalObjectPath.CANONICAL_FORMAT);
/** . */
private static PortalObjectId adminPortalId = PortalObjectId.parse("/admin",
PortalObjectPath.CANONICAL_FORMAT);
@@ -103,6 +104,9 @@
/** . */
private PortalAuthorizationManagerFactory portalAuthorizationManagerFactory;
+ /** . */
+ private PortalObjectContainer portalObjectContainer;
+
public PortalAuthorizationManagerFactory getPortalAuthorizationManagerFactory()
{
return portalAuthorizationManagerFactory;
@@ -113,6 +117,16 @@
this.portalAuthorizationManagerFactory = portalAuthorizationManagerFactory;
}
+ public PortalObjectContainer getPortalObjectContainer()
+ {
+ return portalObjectContainer;
+ }
+
+ public void setPortalObjectContainer(PortalObjectContainer portalObjectContainer)
+ {
+ this.portalObjectContainer = portalObjectContainer;
+ }
+
public ControllerResponse invoke(ControllerCommand cmd) throws Exception
{
ControllerResponse resp = (ControllerResponse)cmd.invokeNext();
@@ -280,7 +294,9 @@
if (admin || isDashboard)
{
// Link to default page of default portal
- ViewPageCommand vpc = new ViewPageCommand(defaultPortalId);
+ // Cannot use defaultPortalId in 2.6.x because the default context
doesn't have the view right.
+ // Upgrading from 2.6.1 to 2.6.2 would break.
+ ViewPageCommand vpc = new
ViewPageCommand(portalObjectContainer.getContext().getDefaultPortal().getId());
rd.setAttribute("org.jboss.portal.header.DEFAULT_PORTAL_URL", new
PortalURLImpl(vpc, controllerCtx, null, null));
}
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/DefaultPortalCommandFactory.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/DefaultPortalCommandFactory.java 2007-08-13
07:45:45 UTC (rev 7900)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/DefaultPortalCommandFactory.java 2007-08-13
14:51:23 UTC (rev 7901)
@@ -39,9 +39,6 @@
{
/** . */
- private PortalObjectId defaultPortalPath = PortalObjectId.parse("/default",
PortalObjectPath.CANONICAL_FORMAT);
-
- /** . */
private CommandFactory nextFactory;
/** . */
@@ -72,7 +69,7 @@
ControllerCommand cmd = nextFactory.doMapping(controllerContext, invocation, host,
contextPath, requestPath);
if (cmd == null)
{
- Portal portal = (Portal)container.getObject(defaultPortalPath);
+ Portal portal = (Portal)container.getContext().getDefaultPortal();
if (portal == null)
{
throw new IllegalStateException("Default portal does not exist");
Modified:
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java 2007-08-13
07:45:45 UTC (rev 7900)
+++
branches/JBoss_Portal_Branch_2_6/core/src/main/org/jboss/portal/core/model/portal/metadata/PortalObjectMetaData.java 2007-08-13
14:51:23 UTC (rev 7901)
@@ -174,6 +174,13 @@
RoleSecurityBinding binding = new
RoleSecurityBinding(PortalObjectPermission.VIEW_RECURSIVE_ACTION,
SecurityConstants.UNCHECKED_ROLE_NAME);
securityConstraints.getConstraints().add(binding);
}
+ else if (this instanceof ContextMetaData)
+ {
+ // Default is view
+ securityConstraints = new SecurityConstraintsMetaData();
+ RoleSecurityBinding binding = new
RoleSecurityBinding(PortalObjectPermission.VIEW_ACTION,
SecurityConstants.UNCHECKED_ROLE_NAME);
+ securityConstraints.getConstraints().add(binding);
+ }
}
else
{
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-13
07:45:45 UTC (rev 7900)
+++
branches/JBoss_Portal_Branch_2_6/core/src/resources/portal-core-sar/META-INF/jboss-service.xml 2007-08-13
14:51:23 UTC (rev 7901)
@@ -227,6 +227,10 @@
<depends
optional-attribute-name="PortalAuthorizationManagerFactory"
proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+ <depends
+ optional-attribute-name="PortalObjectContainer"
+
proxy-type="attribute">portal:container=PortalObject</depends>
+
</mbean>
<mbean
code="org.jboss.portal.core.aspects.controller.node.EventBroadcasterInterceptor"
Modified:
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java 2007-08-13
07:45:45 UTC (rev 7900)
+++
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/PortalObjectManagerBean.java 2007-08-13
14:51:23 UTC (rev 7901)
@@ -131,6 +131,9 @@
private SelectItem[] portalPageItems;
/** . */
+ private SelectItem[] portalItems;
+
+ /** . */
private List selectedObjectPath;
/** . */
@@ -331,6 +334,11 @@
return portalPageItems;
}
+ public SelectItem[] getPortalItems()
+ {
+ return portalItems;
+ }
+
public List getSelectedObjectPath()
{
return selectedObjectPath;
@@ -491,6 +499,7 @@
propertyAction = null;
instanceItems = null;
portalPageItems = null;
+ portalItems = null;
selectedObjectPath = null;
selectedObject = null;
selectedProperties = null;
@@ -525,6 +534,18 @@
theme = new ThemeBean(selectedObject);
//
+ Collection portals = getSelectedObject().getChildren(PortalObject.PORTAL_MASK);
+ ArrayList portalList = new ArrayList(portals.size() + 1);
+ for (Iterator iterator = portals.iterator(); iterator.hasNext();)
+ {
+ PortalObject o = (PortalObject)iterator.next();
+ SelectItem item = new SelectItem(o.getName());
+ portalList.add(item);
+ }
+ portalList.add(new SelectItem("", "no selection"));
+ portalItems = (SelectItem[])portalList.toArray(new SelectItem[portalList.size()]);
+
+ //
Collection pages = getSelectedObject().getChildren(PortalObject.PAGE_MASK);
ArrayList list = new ArrayList(pages.size() + 1);
for (Iterator iterator = pages.iterator(); iterator.hasNext();)
Modified:
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/PortalAction.java
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/PortalAction.java 2007-08-13
07:45:45 UTC (rev 7900)
+++
branches/JBoss_Portal_Branch_2_6/core-admin/src/main/org/jboss/portal/core/admin/ui/actions/PortalAction.java 2007-08-13
14:51:23 UTC (rev 7901)
@@ -86,18 +86,18 @@
this.portalName = portalName;
}
- public String getDefaultPageName()
+ public String getDefaultObjectName()
{
return
pomgr.getSelectedObject().getDeclaredProperty(PortalObject.PORTAL_PROP_DEFAULT_OBJECT_NAME);
}
- public void setDefaultPageName(String defaultPageName)
+ public void setDefaultObjectName(String defaultObjectName)
{
- if (defaultPageName != null && !defaultPageName.equals(""))
+ if (defaultObjectName != null && !defaultObjectName.equals(""))
{
-
pomgr.getSelectedObject().setDeclaredProperty(PortalObject.PORTAL_PROP_DEFAULT_OBJECT_NAME,
defaultPageName);
+
pomgr.getSelectedObject().setDeclaredProperty(PortalObject.PORTAL_PROP_DEFAULT_OBJECT_NAME,
defaultObjectName);
}
- else if (defaultPageName == null || defaultPageName.equals(""))
+ else if (defaultObjectName == null || defaultObjectName.equals(""))
{
pomgr.getSelectedObject().setDeclaredProperty(PortalObject.PORTAL_PROP_DEFAULT_OBJECT_NAME,
null);
}
Modified:
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml 2007-08-13
07:45:45 UTC (rev 7900)
+++
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editContext.xhtml 2007-08-13
14:51:23 UTC (rev 7901)
@@ -17,14 +17,32 @@
<!-- Sub page addition -->
<div style="padding:1em 0 0 0">
- <h:form id="portal_form">
- <span class="portlet-font">Create a portal:</span>
- <span style="padding:1em 0 1em 0">
- <h:inputText id="name"
value="#{portalAction.portalName}"
styleClass="portlet-form-input-field" required="true"/>
- <h:commandButton action="#{portalAction.addPortal}"
value="Add portal" styleClass="portlet-form-button"/>
- <h:message for="name"
errorClass="portlet-msg-error"/>
- </span>
- </h:form>
+ <table>
+ <tr>
+ <h:form id="portal_form">
+ <td><span class="portlet-font">Create a
portal:</span></td>
+ <td><h:inputText id="name"
value="#{portalAction.portalName}"
styleClass="portlet-form-input-field" required="true"/></td>
+ <td><h:commandButton
action="#{portalAction.addPortal}" value="Add portal"
styleClass="portlet-form-button"/></td>
+ <td><h:message for="name"
errorClass="portlet-msg-error"/></td>
+ </h:form>
+ </tr>
+ <!-- Default portal -->
+ <tr>
+ <h:form>
+ <td>
+ <span class="portlet-font">Default
portal:</span>
+ </td>
+ <td>
+ <h:selectOneMenu id="name"
styleClass="portlet-form-field"
value="#{portalAction.defaultObjectName}">
+ <f:selectItems
value="#{portalobjectmgr.portalItems}" />
+ </h:selectOneMenu>
+ </td>
+ <td colspan="2">
+ <h:commandButton styleClass="portlet-form-button"
value="Update" action="objects"/>
+ </td>
+ </h:form>
+ </tr>
+ </table>
</div>
<!-- Separation -->
Modified:
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml
===================================================================
---
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml 2007-08-13
07:45:45 UTC (rev 7900)
+++
branches/JBoss_Portal_Branch_2_6/core-admin/src/resources/portal-admin-war/WEB-INF/jsf/editPage.xhtml 2007-08-13
14:51:23 UTC (rev 7901)
@@ -50,13 +50,14 @@
</h:form>
</tr>
<!-- Default page -->
+ <h:panelGroup rendered="#{portalobjectmgr.selectedObject.type ==
PortalObject.TYPE_PORTAL}">
<tr>
<h:form>
<td>
<span class="portlet-font">Default
page:</span>
</td>
<td>
- <h:selectOneMenu id="name"
styleClass="portlet-form-field"
value="#{portalAction.defaultPageName}">
+ <h:selectOneMenu id="name"
styleClass="portlet-form-field"
value="#{portalAction.defaultObjectName}">
<f:selectItems
value="#{portalobjectmgr.portalPageItems}" />
</h:selectOneMenu>
</td>
@@ -65,6 +66,7 @@
</td>
</h:form>
</tr>
+ </h:panelGroup>
</table>
</div>