Author: ate
Date: Thu Sep 25 13:17:23 2008
New Revision: 699072
URL: http://svn.apache.org/viewvc?rev=699072&view=rev
Log:
Yet untested generalization and improved managing of already processed entities
when synchronizing all.
Not sure this actually is correct (will verify tomorrow), but logically it
should like this.
Modified:
portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java
Modified:
portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java?rev=699072&r1=699071&r2=699072&view=diff
==============================================================================
---
portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java
(original)
+++
portals/jetspeed-2/portal/branches/security-refactoring/components/jetspeed-security/src/main/java/org/apache/jetspeed/security/spi/impl/DefaultJetspeedSecuritySynchronizer.java
Thu Sep 25 13:17:23 2008
@@ -69,12 +69,20 @@
public void synchronizeAll()
{
+ setSynchronizing(true);
try
{
- setSynchronizing(true);
- synchronizePrincipalsByType(JetspeedPrincipalType.GROUP);
- synchronizePrincipalsByType(JetspeedPrincipalType.ROLE);
- synchronizePrincipalsByType(JetspeedPrincipalType.USER);
+ // don't skip any entity type when synchronizing all
+ Collection<String> skipEntities = new ArrayList<String>();
+ InternalSynchronizationState synchronizationState = new
InternalSynchronizationState(skipEntities);
+
+ for (String type : securityEntityManager.getSupportedEntityTypes())
+ {
+ for (Entity entity :
securityEntityManager.getAllEntities(type))
+ {
+ recursiveSynchronizeEntity(entity, synchronizationState);
+ }
+ }
}
finally
{
@@ -82,24 +90,22 @@
}
}
- public void synchronizePrincipalsByType(String principalTypeName)
+ public void synchronizePrincipalsByType(String type)
{
+ setSynchronizing(true);
try
{
- if (principalTypeName.equalsIgnoreCase(JetspeedPrincipalType.USER))
- {
- setSynchronizing(true);
- synchronizePrincipals(JetspeedPrincipalType.USER);
- }
- else if
(principalTypeName.equalsIgnoreCase(JetspeedPrincipalType.GROUP))
+ Collection<Entity> entites =
securityEntityManager.getAllEntities(type);
+ Collection<String> skipEntities = new ArrayList<String>();
+ if (!type.equals(JetspeedPrincipalType.USER))
{
- setSynchronizing(true);
- synchronizePrincipals(JetspeedPrincipalType.GROUP);
+ // skip synchronizing users when not synchronizing the USER
type itself
+ skipEntities.add(JetspeedPrincipalType.USER);
}
- else if
(principalTypeName.equalsIgnoreCase(JetspeedPrincipalType.ROLE))
+ InternalSynchronizationState synchronizationState = new
InternalSynchronizationState(skipEntities);
+ for (Entity entity : entites)
{
- setSynchronizing(true);
- synchronizePrincipals(JetspeedPrincipalType.ROLE);
+ recursiveSynchronizeEntity(entity, synchronizationState);
}
}
finally
@@ -108,17 +114,6 @@
}
}
- private void synchronizePrincipals(String type)
- {
- Collection<Entity> entites =
securityEntityManager.getAllEntities(type);
- Collection<String> skipEntities = new ArrayList<String>();
- InternalSynchronizationState synchronizationState = new
InternalSynchronizationState(skipEntities);
- for (Entity entity : entites)
- {
- recursiveSynchronizeEntity(entity, synchronizationState);
- }
- }
-
private void recursiveSynchronizeEntity(Entity entity,
InternalSynchronizationState syncState)
{
JetspeedPrincipal updatedPrincipal = null;
@@ -138,9 +133,9 @@
public void synchronizeUserPrincipal(String name)
{
+ setSynchronizing(true);
try
{
- setSynchronizing(true);
// don't process relations going towards users to avoid sync'ing
huge
// amounts of data.
// TODO: allow processing of required relations towards users.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]