branch develop-1.1.x updated (ad5c7fba -> 2a8b551e)
This is an automated email from the git hooks/post-receive script. New change to branch develop-1.1.x in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git from ad5c7fba [gitflow-maven-plugin]Update for next development version new 2a8b551e :bug: fixes #11159 : Erreurs dans la mise à jour LDAP The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 2a8b551e3b575b4e551c75ef0a7fa6228ec0948b Author: jcouteau <couteau@codelutin.com> Date: Thu Jan 28 15:43:56 2021 +0100 :bug: fixes #11159 : Erreurs dans la mise à jour LDAP Summary of changes: .../services/service/LdapServiceImpl.java | 30 +++++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-1.1.x in repository faxtomail. See https://gitlab.nuiton.org/codelutin/faxtomail.git commit 2a8b551e3b575b4e551c75ef0a7fa6228ec0948b Author: jcouteau <couteau@codelutin.com> Date: Thu Jan 28 15:43:56 2021 +0100 :bug: fixes #11159 : Erreurs dans la mise à jour LDAP --- .../services/service/LdapServiceImpl.java | 30 +++++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapServiceImpl.java index f17ef29f..57caca78 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/LdapServiceImpl.java @@ -48,6 +48,7 @@ import java.util.AbstractList; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -68,10 +69,16 @@ public class LdapServiceImpl extends FaxToMailServiceSupport implements LdapServ getApplicationConfig().getLdapUser(), getApplicationConfig().getLdapPassword()); if (connection.isConnected()) { + log.debug("Connected to LDAP"); FaxToMailUserTopiaDao faxtomailUserDao = getPersistenceContext().getFaxToMailUserDao(); FaxToMailUserGroupTopiaDao faxtomailUserGroupDao = getPersistenceContext().getFaxToMailUserGroupDao(); + if (log.isDebugEnabled()) { + log.debug("Already got " + faxtomailUserDao.findAll().size() + " users in DB"); + log.debug("Already got " + faxtomailUserGroupDao.findAll().size() + " groups in DB"); + } + // cache group DN > faxtomail user group instance Map<String, FaxToMailUserGroup> groupCache = new HashMap<>(); // cache user DN > faxtomail user instance @@ -82,6 +89,7 @@ public class LdapServiceImpl extends FaxToMailServiceSupport implements LdapServ String groupsFilter = "(objectCategory=CN=Group,CN=Schema,CN=Configuration,DC=mac-groupe,DC=net)"; SearchResult groupsResult = connection.search(groupsBaseDN, SearchScope.SUB, groupsFilter); List<SearchResultEntry> groupEntries = groupsResult.getSearchEntries(); + log.debug("Found " + groupEntries.size() + " groups"); for (SearchResultEntry groupEntry : groupEntries) { String groupDN = groupEntry.getDN(); String groupPath = getGroupCompleteName(groupDN); @@ -91,10 +99,13 @@ public class LdapServiceImpl extends FaxToMailServiceSupport implements LdapServ userGroup = faxtomailUserGroupDao.create( FaxToMailUserGroup.PROPERTY_NAME, groupName, FaxToMailUserGroup.PROPERTY_COMPLETE_NAME, groupPath); + log.debug("Create group " + groupName); } groupCache.put(groupDN, userGroup); } + log.debug("Group cache contains " + groupCache.size() + " groups"); + // get all users ( String usersBaseDN = getApplicationConfig().getLdapBaseDn(); String usersFilter = "(objectCategory=CN=Person,CN=Schema,CN=Configuration,DC=mac-groupe,DC=net)"; @@ -102,6 +113,7 @@ public class LdapServiceImpl extends FaxToMailServiceSupport implements LdapServ // sinon au dela de 1000 resultats ca veux plus SearchResult usersResult = connection.search(usersBaseDN, SearchScope.SUB, "(objectClass=organizationalUnit)"); List<SearchResultEntry> unitEntries = usersResult.getSearchEntries(); + log.debug("Found " + unitEntries.size() + " units"); for (SearchResultEntry unitEntry : unitEntries) { if (log.isDebugEnabled()) { log.debug("Search for unit " + unitEntry.getDN()); @@ -125,28 +137,36 @@ public class LdapServiceImpl extends FaxToMailServiceSupport implements LdapServ } } + log.debug("Users cache contains " + userCache.size() + " users"); + // make remaining user and groups in database as 'hidden' List<List<FaxToMailUser>> partitionedUserCache = partition(new ArrayList<>(userCache.values()), 1990); - Collection<FaxToMailUser> usersToHide = new ArrayList<>(); + Collection<FaxToMailUser> usersToHide = new HashSet<>(faxtomailUserDao.forNotIn(partitionedUserCache.get(0))); for (List<FaxToMailUser> userCacheValues:partitionedUserCache){ - usersToHide.addAll(faxtomailUserDao.forNotIn(userCacheValues)); + usersToHide.retainAll(faxtomailUserDao.forNotIn(userCacheValues)); } + log.debug("Will hide " + usersToHide.size() + "users"); for (FaxToMailUser userToHide : usersToHide) { userToHide.setHidden(true); + log.debug("Will hide user " + userToHide.getFirstName() + " " + userToHide.getLastName() + "(" + userToHide.getLogin()+")"); faxtomailUserDao.update(userToHide); } List<List<FaxToMailUserGroup>> partitionedGroupCache = partition(new ArrayList<>(groupCache.values()), 1990); - Collection<FaxToMailUserGroup> userGroupsToHide = new ArrayList<>(); + Collection<FaxToMailUserGroup> userGroupsToHide = new HashSet<>(faxtomailUserGroupDao.forNotIn(partitionedGroupCache.get(0))); for (List<FaxToMailUserGroup> userGroupCacheValues:partitionedGroupCache){ - userGroupsToHide.addAll(faxtomailUserGroupDao.forNotIn(userGroupCacheValues)); + userGroupsToHide.retainAll(faxtomailUserGroupDao.forNotIn(userGroupCacheValues)); } + log.debug("Will hide " + userGroupsToHide.size() + "groups"); for (FaxToMailUserGroup userGroupToHide : userGroupsToHide) { userGroupToHide.setHidden(true); + log.debug("Will hide group " + userGroupToHide.getName()); faxtomailUserGroupDao.update(userGroupToHide); } getPersistenceContext().commit(); } + log.debug("LDAP update finished"); + } catch (LDAPException ex) { throw new RuntimeException("Can't connect to ldap", ex); } finally { @@ -395,6 +415,8 @@ public class LdapServiceImpl extends FaxToMailServiceSupport implements LdapServ } else { user = faxtomailUserDao.create(user); } + + log.info("Saving user " + user.getFirstName() + " " + user.getLastName() + "(" + user.getLogin()+")"); // force collection loading to force non lazy collections user.isAffectedFoldersEmpty(); -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm