From ad3278b6c26c58b6b1948032221feae739fae21b Mon Sep 17 00:00:00 2001 From: juanf <juanf@ethz.ch> Date: Fri, 30 Jun 2023 14:27:52 +0200 Subject: [PATCH] SSDM-13421: reuseHomeSpace , default to true to get right behaviour by default --- .../task/UserManagementMaintenanceTask.java | 1 + .../openbis/generic/server/task/UserManager.java | 16 +++++++++++++--- .../generic/server/task/UserManagerConfig.java | 11 +++++++++++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManagementMaintenanceTask.java b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManagementMaintenanceTask.java index 5f803c85350..1d88eb53373 100644 --- a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManagementMaintenanceTask.java +++ b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManagementMaintenanceTask.java @@ -267,6 +267,7 @@ public class UserManagementMaintenanceTask extends AbstractGroupMaintenanceTask private UserManager createUserManager(UserManagerConfig config, Log4jSimpleLogger logger, UserManagerReport report) { UserManager userManager = createUserManager(logger, report); + userManager.setReuseHomeSpace(config.getReuseHomeSpace()); userManager.setGlobalSpaces(config.getGlobalSpaces()); userManager.setInstanceAdmins(config.getInstanceAdmins()); try diff --git a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManager.java b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManager.java index f99ebb49d70..9b7ee1a8a88 100644 --- a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManager.java +++ b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManager.java @@ -146,6 +146,8 @@ public class UserManager private boolean deactivateUnknownUsers; + private boolean reuseHomeSpace; + public UserManager(IAuthenticationService authenticationService, IApplicationServerInternalApi service, File shareIdsMappingFileOrNull, ISimpleLogger logger, UserManagerReport report) { @@ -1023,10 +1025,13 @@ public class UserManager private SpacePermId createUserSpace(Context context, String groupCode, String userId) { String userSpaceCode = createCommonSpaceCode(groupCode, userId.toUpperCase()); - int n = context.getCurrentState().getNumberOfSpacesStartingWith(userSpaceCode); - if (n > 0) + if(!reuseHomeSpace) { - userSpaceCode += "_" + (n + 1); + int n = context.getCurrentState().getNumberOfSpacesStartingWith(userSpaceCode); + if (n > 0) + { + userSpaceCode += "_" + (n + 1); + } } return createSpace(context, userSpaceCode); } @@ -1128,6 +1133,11 @@ public class UserManager context.getReport().assignRoleTo(groupId, role, spaceId); } + public void setReuseHomeSpace(boolean reuseHomeSpace) + { + this.reuseHomeSpace = reuseHomeSpace; + } + private static final class CurrentState { private Map<String, AuthorizationGroup> groupsByCode = new TreeMap<>(); diff --git a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManagerConfig.java b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManagerConfig.java index acfb0d05c28..fd268895148 100644 --- a/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManagerConfig.java +++ b/server-application-server/source/java/ch/systemsx/cisd/openbis/generic/server/task/UserManagerConfig.java @@ -24,6 +24,8 @@ import ch.ethz.sis.openbis.generic.asapi.v3.dto.roleassignment.Role; class UserManagerConfig { + private Boolean reuseHomeSpace = true; + private List<String> globalSpaces = new ArrayList<>(); private Map<Role, List<String>> commonSpaces = new HashMap<>(); @@ -96,4 +98,13 @@ class UserManagerConfig this.instanceAdmins = instanceAdmins; } + public boolean getReuseHomeSpace() + { + return reuseHomeSpace; + } + + public void setReuseHomeSpace(boolean reuseHomeSpace) + { + this.reuseHomeSpace = reuseHomeSpace; + } } \ No newline at end of file -- GitLab