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