public void traiteGroupAgentSHD(Integer idAgent, String nameFolderAgent) { List<PersonInfo> listPersonSHD = new ArrayList<PersonInfo>(); List<Integer> listeSuperieurHierarchique = sirhWsConsumer.getListSuperieurOfAgent(idAgent); String groupSHD = PREFIXE_GROUP + nameFolderAgent + SHD; for (Integer idSup : listeSuperieurHierarchique) { if (null != idSup) { PersonInfo personSHD = alfrescoUtilsService.getPersonInfoByIdAgent(idSup); // AJOUT if (null != personSHD) { Set<String> listGroup = authorityService.getAuthoritiesForUser(personSHD.getUserName()); if (!alfrescoUtilsService.isExistGroupForUser(listGroup, groupSHD) && authorityService.authorityExists(personSHD.getUserName())) { authorityService.addAuthority(groupSHD, personSHD.getUserName()); if (!listPersonSHD.contains(personSHD)) { listPersonSHD.add(personSHD); } logger.debug("User " + personSHD.getUserName() + " adding in Group " + groupSHD); } else if (alfrescoUtilsService.isExistGroupForUser(listGroup, groupSHD) && authorityService.authorityExists(personSHD.getUserName())) { if (!listPersonSHD.contains(personSHD)) { listPersonSHD.add(personSHD); } logger.debug("User " + personSHD.getUserName() + " existing in Group " + groupSHD); } } } } // SUPPRESSION Set<String> listUsersGoupSHD = authorityService.getContainedAuthorities(AuthorityType.USER, groupSHD, true); if (null != listUsersGoupSHD) { for (String userGroupSHD : listUsersGoupSHD) { if (!alfrescoUtilsService.isExistUserInListPersonInfo(listPersonSHD, userGroupSHD)) { authorityService.removeAuthority(groupSHD, userGroupSHD); logger.debug("User " + userGroupSHD + " deleted in Group " + groupSHD); } } } }