Author: thomas.heute(a)jboss.com
Date: 2007-08-29 11:53:50 -0400 (Wed, 29 Aug 2007)
New Revision: 8095
Modified:
trunk/core/src/main/org/jboss/portal/core/impl/model/CustomizationManagerService.java
Log:
JBPORTAL-1600: Dashboard also includes protected resources from 'template' on
creation
Modified:
trunk/core/src/main/org/jboss/portal/core/impl/model/CustomizationManagerService.java
===================================================================
---
trunk/core/src/main/org/jboss/portal/core/impl/model/CustomizationManagerService.java 2007-08-29
15:51:56 UTC (rev 8094)
+++
trunk/core/src/main/org/jboss/portal/core/impl/model/CustomizationManagerService.java 2007-08-29
15:53:50 UTC (rev 8095)
@@ -22,28 +22,30 @@
******************************************************************************/
package org.jboss.portal.core.impl.model;
-import org.jboss.portal.jems.as.system.AbstractJBossService;
+import java.util.Iterator;
+
+import org.jboss.logging.Logger;
+import org.jboss.portal.core.impl.model.content.portlet.PortletContent;
import org.jboss.portal.core.model.CustomizationManager;
+import org.jboss.portal.core.model.content.Content;
import org.jboss.portal.core.model.instance.Instance;
import org.jboss.portal.core.model.instance.InstanceContainer;
+import org.jboss.portal.core.model.portal.Context;
+import org.jboss.portal.core.model.portal.DuplicatePortalObjectException;
+import org.jboss.portal.core.model.portal.NoSuchPortalObjectException;
+import org.jboss.portal.core.model.portal.Portal;
import org.jboss.portal.core.model.portal.PortalObject;
-import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.model.portal.PortalObjectPermission;
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
import org.jboss.portal.core.model.portal.PortalObjectId;
-import org.jboss.portal.core.model.portal.Portal;
-import org.jboss.portal.core.model.portal.DuplicatePortalObjectException;
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.core.model.portal.NoSuchPortalObjectException;
-import org.jboss.portal.core.model.portal.Context;
import org.jboss.portal.core.model.portal.PortalObjectPath;
-import org.jboss.portal.core.impl.model.content.portlet.PortletContent;
-import org.jboss.portal.core.model.content.Content;
-import org.jboss.portal.security.spi.auth.PortalAuthorizationManagerFactory;
-import org.jboss.portal.security.spi.auth.PortalAuthorizationManager;
-import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.core.model.portal.PortalObjectPermission;
+import org.jboss.portal.core.model.portal.Window;
import org.jboss.portal.identity.RoleModule;
import org.jboss.portal.identity.User;
-import org.jboss.logging.Logger;
+import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.jems.as.system.AbstractJBossService;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManager;
+import org.jboss.portal.security.spi.auth.PortalAuthorizationManagerFactory;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -285,7 +287,9 @@
Portal templatePortal =
(Portal)portalObjectContainer.getObject(TEMPLATE_ID);
// Copy the template portal
- dashboardPortal = (Portal)templatePortal.copy(dashboardContext, userId,
true);
+ dashboardPortal = (Portal)templatePortal.copy(dashboardContext, userId,
false);
+ copy(templatePortal, dashboardContext.getChild(userId));
+
}
}
catch (DuplicatePortalObjectException e)
@@ -298,6 +302,36 @@
return dashboardPortal;
}
+ private void copy(PortalObject from, PortalObject to)
+ {
+ PortalAuthorizationManager pam = pamf.getManager();
+ Iterator it = from.getChildren().iterator();
+ {
+ while (it.hasNext())
+ {
+ PortalObject portalObject = (PortalObject)it.next();
+ try
+ {
+ PortalObjectPermission perm = new
PortalObjectPermission(portalObject.getId(), PortalObjectPermission.VIEW_MASK);
+ if (pam.checkPermission(perm))
+ {
+ portalObject.copy(to, portalObject.getName(), false);
+ }
+ copy(portalObject, to.getChild(portalObject.getName()));
+ }
+ catch (IllegalArgumentException e)
+ {
+ e.printStackTrace();
+ }
+ catch (DuplicatePortalObjectException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ }
+
public void destroyDashboard(String userId)
{
try
Show replies by date