Author: mcardle
Date: Thu Aug 17 07:10:10 2006
New Revision: 14923
URL: https://svndev.jahia.net/websvn/listing.php?sc=1&rev=14923&repname=jahia
Log:
* flush all if more than 50 users to invalidate
Modified:
trunk/core/src/java/org/jahia/engines/rights/ManageRights.java
Modified: trunk/core/src/java/org/jahia/engines/rights/ManageRights.java
URL:
https://svndev.jahia.net/websvn/diff.php?path=/trunk/core/src/java/org/jahia/engines/rights/ManageRights.java&rev=14923&repname=jahia
==============================================================================
--- trunk/core/src/java/org/jahia/engines/rights/ManageRights.java (original)
+++ trunk/core/src/java/org/jahia/engines/rights/ManageRights.java Thu Aug 17
07:10:10 2006
@@ -51,6 +51,7 @@
import org.jahia.services.esi.EsiInvalidationEventListener;
import org.jahia.utils.JahiaTools;
+import javax.servlet.ServletException;
import java.security.Principal;
import java.util.*;
@@ -910,12 +911,25 @@
logger.debug("ACL ["+acl+"] was altered so
triggering invalidation of user : " + jahiaUser.getUsername());
}
}
-
ServicesRegistry.getInstance().getEsiSOAPInvalidatorService()
- .SOAPInvalidatePagesAndAllFragsAndAllUserEntries(
Jahia.getThreadParamBean() ,
- esiPagesToInvalidate,
- esiUsersToInvalidate,
- true,
- true);
+ //TODO: with aclGroup-template need to invalidate user's
session on ESI and reset RequestInfo with Jahia servlet
+ if (esiUsersToInvalidate.size()<50) {
+
ServicesRegistry.getInstance().getEsiSOAPInvalidatorService()
+
.SOAPInvalidatePagesAndAllFragsAndAllUserEntries( Jahia.getThreadParamBean() ,
+ esiPagesToInvalidate,
+ esiUsersToInvalidate,
+ true,
+ true);
+ } else {
+ if (logger.isDebugEnabled())
+ logger.info(esiUsersToInvalidate.size()+" users
affected by ACL ["+acl+"] alteration (which is over >50 threshold limit) so
triggering ESI cache flush.");
+ JahiaEvent flushEsiEvent = new JahiaEvent(this,
processingContext, acl);
+ try {
+
ServicesRegistry.getInstance().getJahiaEventService().fireFlushEsiCacheEvent(flushEsiEvent);
+ }
+ catch (JahiaException ex) {
+ throw new ServletException("[esi] : Error
triggering flush event", ex);
+ }
+ }
}
}
JahiaEvent setRightsEvent = new JahiaEvent(this,
processingContext, acl);