mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
MT - fix delete node (to ensure tenant-specific re-index)
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@8143 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -759,7 +759,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
invokeBeforeDeleteNode(nodeRef);
|
||||
|
||||
// get the primary parent-child relationship before it is gone
|
||||
ChildAssociationRef childAssocRef = getPrimaryParent(nodeRef);
|
||||
ChildAssociationRef childAssocRef = tenantService.getName(getPrimaryParent(nodeRef)); //note: tenant-specific for re-indexing
|
||||
// get type and aspect QNames as they will be unavailable after the delete
|
||||
QName nodeTypeQName = node.getTypeQName();
|
||||
Set<QName> nodeAspectQNames = node.getAspects();
|
||||
@@ -1255,13 +1255,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
// no match - ignore
|
||||
continue;
|
||||
}
|
||||
ChildAssociationRef childAssocRef = new ChildAssociationRef(
|
||||
assoc.getChildAssocRef().getTypeQName(),
|
||||
tenantService.getBaseName(assoc.getChildAssocRef().getParentRef()),
|
||||
assoc.getChildAssocRef().getQName(),
|
||||
tenantService.getBaseName(assoc.getChildAssocRef().getChildRef()),
|
||||
assoc.getChildAssocRef().isPrimary(),
|
||||
assoc.getChildAssocRef().getNthSibling());
|
||||
ChildAssociationRef childAssocRef = tenantService.getBaseName(assoc.getChildAssocRef());
|
||||
results.add(childAssocRef);
|
||||
}
|
||||
// done
|
||||
@@ -1357,12 +1351,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
}
|
||||
else
|
||||
{
|
||||
assocRef = new ChildAssociationRef(assoc.getChildAssocRef().getTypeQName(),
|
||||
tenantService.getBaseName(assoc.getChildAssocRef().getParentRef()),
|
||||
assoc.getChildAssocRef().getQName(),
|
||||
tenantService.getBaseName(assoc.getChildAssocRef().getChildRef()),
|
||||
assoc.getChildAssocRef().isPrimary(),
|
||||
assoc.getChildAssocRef().getNthSibling());
|
||||
assocRef = tenantService.getBaseName(assoc.getChildAssocRef());
|
||||
}
|
||||
return assocRef;
|
||||
}
|
||||
|
@@ -29,6 +29,7 @@ import java.util.List;
|
||||
import org.alfresco.error.AlfrescoRuntimeException;
|
||||
import org.alfresco.repo.cache.SimpleCache;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationUtil;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
@@ -91,6 +92,19 @@ public class MultiTServiceImpl implements TenantService
|
||||
return new StoreRef(storeRef.getProtocol(), getName(storeRef.getIdentifier()));
|
||||
}
|
||||
|
||||
public ChildAssociationRef getName(ChildAssociationRef childAssocRef)
|
||||
{
|
||||
// Check that all the passed values are not null
|
||||
ParameterCheck.mandatory("ChildAssocRef", childAssocRef);
|
||||
|
||||
return new ChildAssociationRef(childAssocRef.getTypeQName(),
|
||||
getName(childAssocRef.getParentRef()),
|
||||
childAssocRef.getQName(),
|
||||
getName(childAssocRef.getChildRef()),
|
||||
childAssocRef.isPrimary(),
|
||||
childAssocRef.getNthSibling());
|
||||
}
|
||||
|
||||
public StoreRef getName(String username, StoreRef storeRef)
|
||||
{
|
||||
// Check that all the passed values are not null
|
||||
@@ -227,6 +241,19 @@ public class MultiTServiceImpl implements TenantService
|
||||
return new StoreRef(storeRef.getProtocol(), getBaseName(storeRef.getIdentifier()));
|
||||
}
|
||||
|
||||
public ChildAssociationRef getBaseName(ChildAssociationRef childAssocRef)
|
||||
{
|
||||
// Check that all the passed values are not null
|
||||
ParameterCheck.mandatory("ChildAssocRef", childAssocRef);
|
||||
|
||||
return new ChildAssociationRef(childAssocRef.getTypeQName(),
|
||||
getBaseName(childAssocRef.getParentRef()),
|
||||
childAssocRef.getQName(),
|
||||
getBaseName(childAssocRef.getChildRef()),
|
||||
childAssocRef.isPrimary(),
|
||||
childAssocRef.getNthSibling());
|
||||
}
|
||||
|
||||
public String getBaseName(String name)
|
||||
{
|
||||
// get base name, but don't force for non-tenant user (e.g. super admin)
|
||||
|
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package org.alfresco.repo.tenant;
|
||||
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
@@ -52,6 +53,11 @@ public class SingleTServiceImpl implements TenantService
|
||||
return storeRef;
|
||||
}
|
||||
|
||||
public ChildAssociationRef getName(ChildAssociationRef childAssocRef)
|
||||
{
|
||||
return childAssocRef;
|
||||
}
|
||||
|
||||
public StoreRef getName(String username, StoreRef storeRef)
|
||||
{
|
||||
return storeRef;
|
||||
@@ -82,6 +88,11 @@ public class SingleTServiceImpl implements TenantService
|
||||
return storeRef;
|
||||
}
|
||||
|
||||
public ChildAssociationRef getBaseName(ChildAssociationRef childAssocRef)
|
||||
{
|
||||
return childAssocRef;
|
||||
}
|
||||
|
||||
public String getBaseName(String name)
|
||||
{
|
||||
return name;
|
||||
|
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
package org.alfresco.repo.tenant;
|
||||
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.repository.NodeService;
|
||||
import org.alfresco.service.cmr.repository.StoreRef;
|
||||
@@ -52,6 +53,8 @@ public interface TenantService
|
||||
|
||||
public StoreRef getName(StoreRef storeRef);
|
||||
|
||||
public ChildAssociationRef getName(ChildAssociationRef childAssocRef);
|
||||
|
||||
public StoreRef getName(String username, StoreRef storeRef);
|
||||
|
||||
public QName getName(NodeRef inNodeRef, QName name);
|
||||
@@ -64,6 +67,8 @@ public interface TenantService
|
||||
|
||||
public StoreRef getBaseName(StoreRef storeRef);
|
||||
|
||||
public ChildAssociationRef getBaseName(ChildAssociationRef childAssocRef);
|
||||
|
||||
public String getBaseName(String name);
|
||||
|
||||
public String getBaseName(String name, boolean forceIfNonTenant);
|
||||
|
Reference in New Issue
Block a user