Author: chris.laprun(a)jboss.com
Date: 2008-12-11 09:25:36 -0500 (Thu, 11 Dec 2008)
New Revision: 12376
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java
Log:
- JBPORTAL-2257: possible fix... Needs associated test case.
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java 2008-12-10
22:32:43 UTC (rev 12375)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/portal/ObjectNode.java 2008-12-11
14:25:36 UTC (rev 12376)
@@ -22,6 +22,13 @@
******************************************************************************/
package org.jboss.portal.core.impl.model.portal;
+import org.jboss.logging.Logger;
+import org.jboss.portal.core.model.portal.DuplicatePortalObjectException;
+import org.jboss.portal.core.model.portal.NoSuchPortalObjectException;
+import org.jboss.portal.core.model.portal.PortalObjectId;
+import org.jboss.portal.jems.hibernate.ContextObject;
+import org.jboss.portal.security.RoleSecurityBinding;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -30,13 +37,6 @@
import java.util.Map;
import java.util.Set;
-import org.jboss.logging.Logger;
-import org.jboss.portal.core.model.portal.DuplicatePortalObjectException;
-import org.jboss.portal.core.model.portal.NoSuchPortalObjectException;
-import org.jboss.portal.core.model.portal.PortalObjectId;
-import org.jboss.portal.jems.hibernate.ContextObject;
-import org.jboss.portal.security.RoleSecurityBinding;
-
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
* @version $Revision$
@@ -57,10 +57,11 @@
private ObjectNode parent;
private Map children;
private PortalObjectImpl object;
- private Map securityConstraints;
+ private Map<String, ObjectNodeSecurityConstraint> securityConstraints;
// Runtime fields
private AbstractPortalObjectContainer.ContainerContext containerContext;
+ private static final String DASHBOARD = "dashboard";
public ObjectNode()
{
@@ -81,7 +82,7 @@
this.path = path;
this.name = name;
this.children = new HashMap();
- this.securityConstraints = new HashMap();
+ this.securityConstraints = new HashMap<String,
ObjectNodeSecurityConstraint>();
}
// ContextObject implementation
*************************************************************************************
@@ -264,18 +265,16 @@
public void setBindings(Set bindings)
{
// Clear existing constraints
- securityConstraints.clear();
- for (Iterator i = securityConstraints.values().iterator(); i.hasNext();)
+ for (ObjectNodeSecurityConstraint onsc : securityConstraints.values())
{
- ObjectNodeSecurityConstraint onsc = (ObjectNodeSecurityConstraint)i.next();
- i.remove();
onsc.setObjectNode(null);
}
+ securityConstraints.clear();
// Replace with new ones
- for (Iterator i = bindings.iterator(); i.hasNext();)
+ for (Object binding : bindings)
{
- RoleSecurityBinding sc = (RoleSecurityBinding)i.next();
+ RoleSecurityBinding sc = (RoleSecurityBinding)binding;
// Optmize a bit
if (sc.getActions().size() > 0)
@@ -294,10 +293,9 @@
public Set getBindings()
{
- Set bindings = new HashSet();
- for (Iterator i = securityConstraints.values().iterator(); i.hasNext();)
+ Set<RoleSecurityBinding> bindings = new
HashSet<RoleSecurityBinding>();
+ for (ObjectNodeSecurityConstraint onsc : securityConstraints.values())
{
- ObjectNodeSecurityConstraint onsc = (ObjectNodeSecurityConstraint)i.next();
Set actions = onsc.getActions();
RoleSecurityBinding sc = new RoleSecurityBinding(actions, onsc.getRole());
bindings.add(sc);
@@ -307,28 +305,26 @@
public RoleSecurityBinding getBinding(String roleName)
{
- Set actions = null;
- for (Iterator i = securityConstraints.values().iterator(); i.hasNext();)
+ Set<String> actions = null;
+
+ //
+ ObjectNodeSecurityConstraint onsc = securityConstraints.get(roleName);
+ if (onsc != null)
{
- ObjectNodeSecurityConstraint onsc = (ObjectNodeSecurityConstraint)i.next();
- if (onsc.getRole().equals(roleName))
- {
- actions = onsc.getActions();
- break;
- }
+ actions = onsc.getActions();
}
//
- if ("dashboard".equals(path.getNamespace()))
+ if (DASHBOARD.equals(path.getNamespace()))
{
if (actions == null)
{
- actions = Collections.singleton("dashboard");
+ actions = Collections.singleton(DASHBOARD);
}
else
{
- actions = new HashSet(actions);
- actions.add("dashboard");
+ actions = new HashSet<String>(actions);
+ actions.add(DASHBOARD);
}
}
Show replies by date