[exo-jcr-commits] exo-jcr SVN: r976 - in jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: core/nodetype and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Dec 9 11:26:19 EST 2009


Author: tolusha
Date: 2009-12-09 11:26:19 -0500 (Wed, 09 Dec 2009)
New Revision: 976

Modified:
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeDataHierarchyHolder.java
   jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
Log:
EXOJCR-939: remove setters from code

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2009-12-09 16:25:01 UTC (rev 975)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/NodeImpl.java	2009-12-09 16:26:19 UTC (rev 976)
@@ -598,11 +598,24 @@
          state = ItemState.createAddedState(prop);
       }
 
-      // Should register jcr:mixinTypes and autocreated items if node is not added
+      NodeTypeDataManager ntmanager = session.getWorkspace().getNodeTypesHolder();
+
+      // change ACL
+      for (PropertyDefinitionData def : ntmanager.getAllPropertyDefinitions(type.getName()))
+      {
+         if (ntmanager.isNodeType(Constants.EXO_OWNEABLE, new InternalQName[]{type.getName()})
+            && def.getName().equals(Constants.EXO_OWNER))
+         {
+            AccessControlList acl =
+               new AccessControlList(session.getUserID(), ((NodeData)data).getACL().getPermissionEntries());
+            setACL(acl);
+         }
+      }
+
       updateMixin(newMixin);
       dataManager.update(state, false);
 
-      NodeTypeDataManager ntmanager = session.getWorkspace().getNodeTypesHolder();
+      // Should register jcr:mixinTypes and autocreated items if node is not added
       ItemAutocreator itemAutocreator = new ItemAutocreator(ntmanager, valueFactory, dataManager, false);
 
       PlainChangesLog changes =
@@ -1712,9 +1725,8 @@
 
       AccessControlList acl = new AccessControlList(getACL().getOwner(), getACL().getPermissionEntries());
       acl.removePermissions(identity);
+      setACL(acl);
       updatePermissions(acl);
-      setACL(acl);
-
    }
 
    /**
@@ -1730,9 +1742,8 @@
 
       AccessControlList acl = new AccessControlList(getACL().getOwner(), getACL().getPermissionEntries());
       acl.removePermissions(identity, permission);
+      setACL(acl);
       updatePermissions(acl);
-      setACL(acl);
-
    }
 
    /**
@@ -1878,8 +1889,8 @@
       AccessControlList acl = new AccessControlList(getACL().getOwner(), getACL().getPermissionEntries());
       acl.removePermissions(identity);
       acl.addPermissions(identity, permission);
+      setACL(acl);
       updatePermissions(acl);
-      setACL(acl);
    }
 
    // //////////////////////// OPTIONAL
@@ -1919,8 +1930,8 @@
          }
       }
       AccessControlList acl = new AccessControlList(getACL().getOwner(), aces);
+      setACL(acl);
       updatePermissions(acl);
-      setACL(acl);
    }
 
    /**
@@ -2862,12 +2873,11 @@
 
    private void setACL(AccessControlList acl)
    {
-      //      NodeData nodeData = (NodeData)data;
-      //      data =
-      //         new TransientNodeData(data.getQPath(), data.getIdentifier(), data.getPersistedVersion(), nodeData
-      //            .getPrimaryTypeName(), nodeData.getMixinTypeNames(), nodeData.getOrderNumber(), nodeData
-      //            .getParentIdentifier(), acl);
-      ((NodeData)data).setACL(acl);
+      NodeData nodeData = (NodeData)data;
+      data =
+         new TransientNodeData(nodeData.getQPath(), nodeData.getIdentifier(), nodeData.getPersistedVersion(), nodeData
+            .getPrimaryTypeName(), nodeData.getMixinTypeNames(), nodeData.getOrderNumber(), nodeData
+            .getParentIdentifier(), acl);
    }
 
    private void updateMixin(List<InternalQName> newMixin) throws RepositoryException
@@ -2876,11 +2886,13 @@
       newMixin.toArray(mixins);
 
       //      NodeData nodeData = (NodeData)data;
+      //
       //      data =
       //         new TransientNodeData(nodeData.getQPath(), nodeData.getIdentifier(), nodeData.getPersistedVersion(), nodeData
       //            .getPrimaryTypeName(), mixins, nodeData.getOrderNumber(), nodeData.getParentIdentifier(), nodeData.getACL());
 
       ((TransientNodeData)data).setMixinTypeNames(mixins);
+
       dataManager.update(new ItemState(data, ItemState.MIXIN_CHANGED, false, null), false);
    }
 

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java	2009-12-09 16:25:01 UTC (rev 975)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/ItemAutocreator.java	2009-12-09 16:26:19 UTC (rev 976)
@@ -241,8 +241,6 @@
       {
          // String owner = session.getUserID();
          vals.add(new TransientValueData(owner));
-         parent.setACL(new AccessControlList(owner, parent.getACL().getPermissionEntries()));
-
       }
       else if (nodeTypeDataManager.isNodeType(Constants.EXO_PRIVILEGEABLE, new InternalQName[]{typeName})
          && def.getName().equals(Constants.EXO_PERMISSIONS))

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeDataHierarchyHolder.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeDataHierarchyHolder.java	2009-12-09 16:25:01 UTC (rev 975)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/nodetype/NodeTypeDataHierarchyHolder.java	2009-12-09 16:26:19 UTC (rev 976)
@@ -191,7 +191,6 @@
     */
    public boolean isNodeType(final InternalQName testTypeName, final InternalQName... typesNames)
    {
-
       for (InternalQName typeName : typesNames)
       {
          if (testTypeName.equals(typeName))

Modified: jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java
===================================================================
--- jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java	2009-12-09 16:25:01 UTC (rev 975)
+++ jcr/branches/1.12.0-OPT/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/ACLInheritanceSupportedWorkspaceDataManager.java	2009-12-09 16:26:19 UTC (rev 976)
@@ -31,6 +31,7 @@
 import org.exoplatform.services.jcr.datamodel.NodeData;
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPathEntry;
+import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
 
@@ -111,13 +112,22 @@
          {
             // use nearest ancestor permissions
             AccessControlList ancestorAcl = getNearestACAncestorAcl(node);
-            node.setACL(new AccessControlList(acl.getOwner(), ancestorAcl.getPermissionEntries()));
+
+            node =
+               new TransientNodeData(node.getQPath(), node.getIdentifier(), node.getPersistedVersion(), node
+                  .getPrimaryTypeName(), node.getMixinTypeNames(), node.getOrderNumber(), node.getParentIdentifier(),
+                  new AccessControlList(acl.getOwner(), ancestorAcl.getPermissionEntries()));
          }
          else if (!acl.hasOwner())
          {
             // use nearest ancestor owner
             AccessControlList ancestorAcl = getNearestACAncestorAcl(node);
-            node.setACL(new AccessControlList(ancestorAcl.getOwner(), acl.getPermissionEntries()));
+
+            node =
+               new TransientNodeData(node.getQPath(), node.getIdentifier(), node.getPersistedVersion(), node
+                  .getPrimaryTypeName(), node.getMixinTypeNames(), node.getOrderNumber(), node.getParentIdentifier(),
+                  new AccessControlList(ancestorAcl.getOwner(), acl.getPermissionEntries()));
+
          }
       }
 
@@ -128,7 +138,6 @@
     * {@inheritDoc}
     */
    // ------------ ItemDataConsumer impl ------------
-
    public List<NodeData> getChildNodesData(NodeData parent) throws RepositoryException
    {
       final List<NodeData> nodes = persistentManager.getChildNodesData(parent);
@@ -136,11 +145,11 @@
          initACL(parent, node);
       return nodes;
    }
-   
+
    /**
     * {@inheritDoc}
     */
-   public int getChildNodesCount(final NodeData parent) throws RepositoryException 
+   public int getChildNodesCount(final NodeData parent) throws RepositoryException
    {
       return persistentManager.getChildNodesCount(parent);
    }



More information about the exo-jcr-commits mailing list