From 1741cabc5cdbc40f9db11b2e1ba6697cd21b49f9 Mon Sep 17 00:00:00 2001 From: GeorgeC Date: Thu, 1 Feb 2024 08:48:25 -0500 Subject: [PATCH] Add conditional logic to UserRepository save method The save method in UserRepository.java has been enhanced. If a User object's UUID is not null, then the User is merged to ensure an update takes place, else it's persisted to create a new user record. This preserves data integrity by avoiding possible unintentional user overwrites. --- .../avillach/auth/data/repository/UserRepository.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pic-sure-auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/data/repository/UserRepository.java b/pic-sure-auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/data/repository/UserRepository.java index 4adfd3dd1..cf9ce118c 100644 --- a/pic-sure-auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/data/repository/UserRepository.java +++ b/pic-sure-auth-services/src/main/java/edu/harvard/hms/dbmi/avillach/auth/data/repository/UserRepository.java @@ -236,6 +236,12 @@ public User createOpenAccessUser(Role openAccessRole) { * @param user the user to save */ public void save(User user) { - em().merge(user); + // if user exists update, else create + if (user.getUuid() != null) { + em().merge(user); + } else { + em().persist(user); + } } + }