mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V4.0-BUG-FIX to HEAD
37502: Merged V3.4-BUG-FIX to V4.0-BUG-FIX (RECORD ONLY) 37159: ALF-12541: Fix EOL. 37172: Merged HEAD to V3.4-BUG-FIX: 33880: ALF-12777 / ALF-14259: MMT should not install AMPs which override pre-existing files in the war file, unless -force is provided. The MMT is moving toward more of a validation phase (checks things, calculate changes) then an execution phase (makes the changes). 37526: ALF-11027: update URLs to our Maven repos 37554: Follow-on fix to ALF-9661 - do not fire update rule (onDeleteAssociation) if node also no longer exists - will fail with concurrency/retry error (=> "Attempt to follow reference ... to deleted node") - fix targeted for 4.0.3 (requires merge from V4.0-BUG-FIX to V4.0) - required by CloudSync (ALF-13941) - eg. last target( SSMN) also deletes source (SSD) 37564: Pull out some bits to constants, so downstream classes can more easily configure themselves 37571: ALF-14055: Merged V3.4-BUG-FIX to V4.0-BUG-FIX 37570: ALF-13751: Catastrophic indexing performance when a repository containing 60,000 sites, all containing the admin user is synced with an LDAP server containing an admin user - made LDAP sync only apply incremental changes to zones (rather than removing all and adding all) and made it preserve the AUTH.ALF zone if it is already there, as that contains all the site group paths git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@37572 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1671,9 +1671,7 @@ public class ChainingUserRegistrySynchronizer extends AbstractLifecycleBean impl
|
||||
+ "'. This user will in future be assumed to originate from user registry '" + zone
|
||||
+ "'.");
|
||||
}
|
||||
ChainingUserRegistrySynchronizer.this.authorityService.removeAuthorityFromZones(personName,
|
||||
zones);
|
||||
ChainingUserRegistrySynchronizer.this.authorityService.addAuthorityToZones(personName, zoneSet);
|
||||
updateAuthorityZones(personName, zones, zoneSet);
|
||||
ChainingUserRegistrySynchronizer.this.personService.setPersonProperties(personName,
|
||||
personProperties, false);
|
||||
}
|
||||
@@ -1875,6 +1873,33 @@ public class ChainingUserRegistrySynchronizer extends AbstractLifecycleBean impl
|
||||
return zones;
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifies an authority's zone set from oldZones to newZones in the most efficient manner (avoiding unnecessary
|
||||
* reindexing cost).
|
||||
*
|
||||
* @param authorityName
|
||||
* @param oldZones
|
||||
* @param newZones
|
||||
*/
|
||||
private void updateAuthorityZones(String authorityName, Set<String> oldZones, final Set<String> newZones)
|
||||
{
|
||||
Set<String> zonesToRemove = new HashSet<String>(oldZones);
|
||||
zonesToRemove.removeAll(newZones);
|
||||
// Let's keep the authority in the alfresco auth zone if it was already there. Otherwise we may have to
|
||||
// regenerate all paths to this authority from site groups, which could be very expensive!
|
||||
zonesToRemove.remove(AuthorityService.ZONE_AUTH_ALFRESCO);
|
||||
if (!zonesToRemove.isEmpty())
|
||||
{
|
||||
this.authorityService.removeAuthorityFromZones(authorityName, zonesToRemove);
|
||||
}
|
||||
Set<String> zonesToAdd = new HashSet<String>(newZones);
|
||||
zonesToAdd.removeAll(oldZones);
|
||||
if (!zonesToAdd.isEmpty())
|
||||
{
|
||||
this.authorityService.addAuthorityToZones(authorityName, zonesToAdd);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @seeorg.springframework.extensions.surf.util.AbstractLifecycleBean#onBootstrap(org.springframework.context.
|
||||
|
Reference in New Issue
Block a user