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);

Reply via email to