Merged V3.1 to HEAD

12994: Merged V3.0 to V3.1
      12931: Merged V2.2 to V3.0
         12635: Fix for ETWOTWO-995: Diff performance degrades on large data sets
         12742: Fix for ETWOTWO-981: WCM - regression - revert fails (eg. for content publisher)
         12743: AVM - add missing tests to test suite & fix existing tests (including base setup)
         12759: AVM - build/test fix - follow-on to r12742
         12781: Fix PersonDAO - fixes AuthorityServiceTest which failed after adding AVMServicePermissionsTest
      12932: Merged V2.2 to V3.0   
         12763: Support for ETWOTWO-975: AVMDifference now implements Comparable<AVMDifference>
         12782: Fix for ETWOTWO-939: Content Contributor cannot edit their own items
         12809: Test fixes after r 12782
         12818: ETWOTWO-977 (Orphan Reaper) - removal of comment questioning cache interaction.
      12933: Merged V2.2 to V3.0
         12306: (record-only) Final set of XSS and HTML encoding fixes for ETWOONE-90 - already merged (see r12310)
      12934: Merged V2.2 to V3.0
         12311: (record-only) Fix for ETWOONE-389 - Current page number not always visible on the browse screen - already merged (see r12312)
      12935: Merged V2.2 to V3.0
         12320: (record-only) Fix for ETWOONE-87: Behavior of delete cascade - already merged (see r12324)
         12322: (record-only) Fix merge issue (marked as Do Not Merge - see CHK-5607)
      12936: Merged V2.2 to V3.0
         12775: (record-only) ETHREEOH-872: Editing Email-notify-rules fails w/ ClassCastException (back-port of r11966)
      12937: Merged V2.2 to V3.0
         12780: Fixed ETWOTWO-1003: DuplicateChildNameException not generated correctly (on Oracle)
         12820: Update to ETWOTWO-926 (WCM Form Inline callouts to Web Scripts)
         12825: Further ETWOTWO-926 update: provide compatibility with old token scheme as the original patch has already made its way into 3.0.1
         12850: ETWOTWO-975 - Show Conflicts in Modified Items List
         12938: Fix merge typo (follow on from r12931)
         12941: Fix merge typo (follow on from r12931)
   12998: Cleaned up svn:mergeinfo entries
   ___________________________________________________________________
   Modified: svn:mergeinfo
      Merged /alfresco/BRANCHES/V3.0:r12931-12938,12941
      Merged /alfresco/BRANCHES/V2.2:r12306,12311,12320,12322,12635,12742-12743,12759,12763,12775,12780-12782,12809,12818,12820,12825,12850
      Merged /alfresco/BRANCHES/V3.1:r12994,12998


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13549 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2009-03-11 02:50:32 +00:00
parent 37d3c2e25e
commit 6eb1963971
34 changed files with 972 additions and 627 deletions

View File

@@ -34,8 +34,10 @@ import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.repo.avm.AVMRepository;
import org.alfresco.repo.domain.AccessControlListDAO;
import org.alfresco.repo.domain.DbAccessControlList;
import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.repo.domain.hibernate.AclDaoComponentImpl.Indirection;
import org.alfresco.repo.search.AVMSnapShotTriggeredIndexingMethodInterceptor;
import org.alfresco.repo.search.AVMSnapShotTriggeredIndexingMethodInterceptor.StoreType;
import org.alfresco.repo.search.impl.lucene.index.IndexInfo;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.security.authentication.AuthenticationUtil.RunAsWork;
@@ -54,6 +56,7 @@ import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.InvalidStoreRefException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.EqualsHelper;
import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
@@ -70,7 +73,7 @@ public class AVMAccessControlListDAO implements AccessControlListDAO
* The logger.
*/
private static Log s_logger = LogFactory.getLog(AVMAccessControlListDAO.class);
/**
* Reference to the AVM Repository instance.
*/
@@ -268,8 +271,9 @@ public class AVMAccessControlListDAO implements AccessControlListDAO
public void updateChangedAcls(NodeRef startingPoint, List<AclChange> changes)
{
// If their are no actual changes there is nothing to do (the changes are all in TX and have already COWed so they can just change)
// If their are no actual changes there is nothing to do (the changes are all in TX and have already COWed so
// they can just change)
boolean hasChanges = false;
Long after = null;
for (AclChange change : changes)
@@ -282,22 +286,22 @@ public class AVMAccessControlListDAO implements AccessControlListDAO
{
after = change.getAfter();
}
if(!EqualsHelper.nullSafeEquals(change.getTypeBefore(), change.getTypeAfter()))
if (!EqualsHelper.nullSafeEquals(change.getTypeBefore(), change.getTypeAfter()))
{
hasChanges = true;
}
if(!EqualsHelper.nullSafeEquals(change.getBefore(), change.getAfter()))
if (!EqualsHelper.nullSafeEquals(change.getBefore(), change.getAfter()))
{
hasChanges = true;
}
}
if(!hasChanges)
if (!hasChanges)
{
return;
}
Long inherited = null;
if (after != null)
{
@@ -307,8 +311,6 @@ public class AVMAccessControlListDAO implements AccessControlListDAO
updateChangedAclsImpl(startingPoint, changes, SetMode.ALL, inherited, after, indirections);
}
private void updateChangedAclsImpl(NodeRef startingPoint, List<AclChange> changes, SetMode mode, Long inherited, Long setAcl, Map<Long, Set<Long>> indirections)
{
hibernateSessionHelper.mark();
@@ -762,7 +764,10 @@ public class AVMAccessControlListDAO implements AccessControlListDAO
{
AVMNodeDescriptor root = fAVMService.getStoreRoot(-1, store.getName());
CounterSet update;
switch (avmSnapShotTriggeredIndexingMethodInterceptor.getStoreType(store.getName()))
Map<QName, PropertyValue> storeProperties = fAVMService.getStoreProperties(store.getName());
switch (StoreType.getStoreType(store.getName(), store, storeProperties))
{
case AUTHOR:
case AUTHOR_PREVIEW:
@@ -773,7 +778,7 @@ public class AVMAccessControlListDAO implements AccessControlListDAO
case WORKFLOW:
case WORKFLOW_PREVIEW:
AVMNodeDescriptor www = fAVMService.lookup(-1, store.getName() + ":/www");
if(www != null)
if (www != null)
{
update = fixOldAvmAcls(www, false, indirections);
result.add(update);

View File

@@ -1578,6 +1578,10 @@ public class AclDaoComponentImpl extends HibernateDaoSupport implements AclDaoCo
}
return toCopy;
case REDIRECT:
if((toInheritFrom != null) && (toInheritFrom == toCopy))
{
return getInheritedAccessControlList(toInheritFrom);
}
aclToCopy = (DbAccessControlList) getHibernateTemplate().get(DbAccessControlListImpl.class, toCopy);
aclToInheritFrom = null;
if (toInheritFrom != null)

View File

@@ -472,11 +472,12 @@
JOIN alf_store s on s.id = n.store_id
WHERE
c.qname_localname = :userName1 AND
p.qname_id = :qnameId AND
p.qname_id = :qnamePropId AND
p.string_value = :userName2 AND
n.type_qname_id = :qnameTypeId AND
n.node_deleted = :False AND
s.protocol = :storeProtocol AND
s.identifier = :storeIdentifier
s.protocol = :storeProtocol AND
s.identifier = :storeIdentifier
</sql-query>
<sql-query name="person.getAllPeople">
@@ -488,7 +489,8 @@
JOIN alf_node_properties p ON n.id = p.node_id
JOIN alf_store s on s.id = n.store_id
WHERE
p.qname_id = :qnameId AND
p.qname_id = :qnamePropId AND
n.type_qname_id = :qnameTypeId AND
n.node_deleted = :False AND
s.protocol = :storeProtocol AND
s.identifier = :storeIdentifier