Index: topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java diff -u topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java:1.11 topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java:1.12 --- topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java:1.11 Tue Nov 14 10:25:32 2006 +++ topia-security/src/java/org/codelutin/topia/security/jaas/TopiaLoginModule.java Fri Nov 24 14:36:14 2006 @@ -24,9 +24,9 @@ * Created: 15 févr. 2006 * * @author Arnaud Thimel -* @version $Revision: 1.11 $ +* @version $Revision: 1.12 $ * -* Mise a jour: $Date: 2006/11/14 10:25:32 $ +* Mise a jour: $Date: 2006/11/24 14:36:14 $ * par : $Author: ruchaud $ */ @@ -137,12 +137,17 @@ // Force le rechargement des groupes d'où la non utilisation de // la méthode : user.getTopiaGroup() - List groups = securityManager.getSecurityContext().find( + Set groups = new HashSet(securityManager.getSecurityContext().find( "select topiaGroup from " + TopiaGroup.class.getName() + - " topiaGroup join topiaGroup.topiaUser as topiaUser where topiaUser = ?", user); + " topiaGroup join topiaGroup.topiaUser as topiaUser where topiaUser = ?", user)); if(groups != null) { for(TopiaGroup group : groups) { + for (TopiaGroup superGroup : (List)group.getAllSuperGroup()) { + String topiaIdGroup = superGroup.getTopiaId(); + principals.add(new TopiaPrincipal(topiaIdGroup)); + securityManager.putPermissionsCache(topiaIdGroup); + } String topiaIdGroup = group.getTopiaId(); principals.add(new TopiaPrincipal(topiaIdGroup)); securityManager.putPermissionsCache(topiaIdGroup);