[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