Author: cmailleux
Date: Tue Oct  9 13:31:35 2007
New Revision: 18794

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18794&repname=
=3Djahia
Log:
Invalidate user entries when adding user to a group
correct issue ESI-354

Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/users/Manage=
Groups.java

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/users/=
ManageGroups.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/admin/users/ManageGroups.java&rev=3D18794&r=
epname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/users/Manage=
Groups.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/users/Manage=
Groups.java Tue Oct  9 13:31:35 2007
@@ -63,6 +63,7 @@
 import org.jahia.services.usermanager.JahiaUserManagerService;
 import org.jahia.services.version.EntryLoadRequest;
 import org.jahia.services.cache.HtmlCache;
+import org.jahia.services.esi.EsiSOAPInvalidatorService;
 import org.jahia.utils.JahiaTools;
 import org.jahia.utils.LanguageCodeConverters;
 =

@@ -563,19 +564,24 @@
             try { // FIXME : Is here a way to optmize these pointer to met=
hod ?
             // Is there any new members to the original groupMembers
             addRemoveGroupMembers(groupMembers, candidateMembers,
-                JahiaGroup.class.getMethod("addMember", new Class[] {Princ=
ipal.class}), grp,htmlCache);
+                JahiaGroup.class.getMethod("addMember", new Class[] {Princ=
ipal.class}), grp,htmlCache,jParams);
             // Is there any removed members from the original groupMembers
             addRemoveGroupMembers(candidateMembers, groupMembers,
-                JahiaGroup.class.getMethod("removeMember", new Class[] {Pr=
incipal.class}), grp,htmlCache);
+                JahiaGroup.class.getMethod("removeMember", new Class[] {Pr=
incipal.class}), grp,htmlCache, jParams);
             } catch (NoSuchMethodException nsme) {
                 logger.debug("Error ", nsme);
             }
         } else {
             // No member in the select box, all members have to be removed
+            boolean esiCacheActivated =3D Jahia.getSettings().isEsiCacheAc=
tivated();
+            EsiSOAPInvalidatorService service =3D ServicesRegistry.getInst=
ance().getEsiSOAPInvalidatorService();
             Iterator it =3D groupMembers.iterator();
             while (it.hasNext()) {
                 JahiaUser jahiaUser =3D (JahiaUser) it.next();
                 grp.removeMember(jahiaUser);
+                if(esiCacheActivated){
+                    service.SOAPInvalidateAllUserEntries(jParams, jahiaUse=
r);
+                } else
                 htmlCache.invalidateUserEntries(jahiaUser.getUsername());
             }
         }
@@ -970,14 +976,23 @@
      * @param right a set of members to check
      * @param addRem the addMembers or removeMembers method to apply.
      * @param grp the object defining the previous method
+     * @param jParams
      */
-    private void addRemoveGroupMembers(HashSet left, HashSet right, Method=
 addRem, JahiaGroup grp, HtmlCache cache) {
+    private void addRemoveGroupMembers(HashSet left,
+                                       HashSet right,
+                                       Method addRem,
+                                       JahiaGroup grp,
+                                       HtmlCache cache,
+                                       ProcessingContext jParams) {
+        boolean esiCacheActivated =3D Jahia.getSettings().isEsiCacheActiva=
ted();
+        EsiSOAPInvalidatorService service =3D ServicesRegistry.getInstance=
()
+                                .getEsiSOAPInvalidatorService();
         Iterator itRight =3D right.iterator();
         while (itRight.hasNext()) {
-            JahiaUser elementRight =3D (JahiaUser)itRight.next();
+            JahiaUser elementRight =3D (JahiaUser) itRight.next();
             Iterator itLeft =3D left.iterator();
             while (itLeft.hasNext()) {
-                JahiaUser elementLeft =3D (JahiaUser)itLeft.next();
+                JahiaUser elementLeft =3D (JahiaUser) itLeft.next();
                 if (elementLeft.getUsername().equals(elementRight.getUsern=
ame())) {
                     elementRight =3D null;
                     break;
@@ -985,9 +1000,12 @@
             }
             if (elementRight !=3D null) {
                 try {
-                    Object[] args =3D { elementRight };
+                    Object[] args =3D {elementRight};
                     addRem.invoke(grp, args);
-                    cache.invalidateUserEntries(elementRight.getUsername()=
);
+                    if (esiCacheActivated) {
+                        service.SOAPInvalidateAllUserEntries(jParams, elem=
entRight);
+                    }
+                    else cache.invalidateUserEntries(elementRight.getUsern=
ame());
                 } catch (IllegalAccessException iae) {
                     logger.error("Error ", iae);
                 } catch (InvocationTargetException ite) {

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to