From 6b9c8a4c92a5c73d8e2795d63d382e583ac341e8 Mon Sep 17 00:00:00 2001 From: Abba Soungui YOUNOUSS Date: Wed, 5 Nov 2025 16:39:43 +0100 Subject: [PATCH] Correct user modification detection. Previous commit did not recognized users modification reliably and synchronization was skipped. This commit fix this situation and make sure that users modification in Wallix are reliably detected. --- .../ext/wallix/sync/WallixConfigSynchronizer.java | 7 ++++--- .../java/cm/soungui/guacamole/ext/wallix/sync/db/DB.java | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/cm/soungui/guacamole/ext/wallix/sync/WallixConfigSynchronizer.java b/src/main/java/cm/soungui/guacamole/ext/wallix/sync/WallixConfigSynchronizer.java index ca10885..1dc14f0 100644 --- a/src/main/java/cm/soungui/guacamole/ext/wallix/sync/WallixConfigSynchronizer.java +++ b/src/main/java/cm/soungui/guacamole/ext/wallix/sync/WallixConfigSynchronizer.java @@ -37,7 +37,7 @@ public class WallixConfigSynchronizer implements Runnable { } private void synchronizeUsers() throws Exception { - System.out.println("Synchronizing groups"); + System.out.println("Synchronizing users"); System.out.println("Getting Wallix groups"); Set wallixUsers = Wallix.getInstance().getUsers(); DB db = DB.getInstance(); @@ -48,8 +48,7 @@ public class WallixConfigSynchronizer implements Runnable { System.out.println("Adding user " + wallixUser.getName()); db.addUser(wallixUser); } else if (userNeedUpdate(dbUser, wallixUser)) { - System.out.println("Updating user " + wallixUser.getName() + " - " + dbUser + " - " + dbUser.getName() + " - " - + dbUser.getId()); + System.out.println("Updating user " + wallixUser); db.updateUser(wallixUser); } } catch (SQLException | GuacamoleException e) { @@ -70,6 +69,8 @@ public class WallixConfigSynchronizer implements Runnable { if (fullName != null && ! fullName.isEmpty()) { return true; } + } else { + return ! dbUser.getFullName().equals(wallixUser.getFullName()); } return dbUser.isDisabled() != wallixUser.isDisabled(); } diff --git a/src/main/java/cm/soungui/guacamole/ext/wallix/sync/db/DB.java b/src/main/java/cm/soungui/guacamole/ext/wallix/sync/db/DB.java index 0239bc3..8ed33e7 100644 --- a/src/main/java/cm/soungui/guacamole/ext/wallix/sync/db/DB.java +++ b/src/main/java/cm/soungui/guacamole/ext/wallix/sync/db/DB.java @@ -340,10 +340,10 @@ public class DB { DB db = DB.getInstance(); Connection connection = db.getMySQLConnection(); PreparedStatement stmt = connection - .prepareStatement("update guacamole_user set full_name=?, disabled=? where user_id=? and organization=?"); + .prepareStatement("update guacamole_user set full_name=?, disabled=? where user_id=(select user_id from guacamole_user where entity_id=(select entity_id from guacamole_entity where name=?)) and organization=?"); stmt.setString(1, wallixUser.getFullName()); stmt.setBoolean(2, wallixUser.isDisabled()); - stmt.setInt(3, wallixUser.getUserId()); + stmt.setString(3, wallixUser.getName()); stmt.setString(4, DB_ORGANIZATION); stmt.executeUpdate(); }