From afc2457c7a4661cd1577fd486211da032354a61c Mon Sep 17 00:00:00 2001 From: Katja Luther Date: Thu, 2 Feb 2017 13:54:47 +0100 Subject: [PATCH] fix #6309: check for existence of user before saving a new user --- .../OSGI-INF/l10n/messages.properties | 3 +++ .../OSGI-INF/l10n/messages_de.properties | 5 ++++- .../input/entitycreator/UserCreator.java | 15 ++++++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/messages.properties b/eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/messages.properties index 2250072f6..8db701fca 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/messages.properties +++ b/eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/messages.properties @@ -7,3 +7,6 @@ BulkEditorInputType_5=Users BulkEditorInputType_6=Groups BulkEditorInputType_7=Taxa BulkEditorInputType_8=Media + +USER_CREATOR_user_exists_title=The user already exists +USER_CREATOR_user_exists=The user already exists in database \ No newline at end of file diff --git a/eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/messages_de.properties b/eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/messages_de.properties index 4bf7416ff..734473672 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/messages_de.properties +++ b/eu.etaxonomy.taxeditor.bulkeditor/OSGI-INF/l10n/messages_de.properties @@ -6,4 +6,7 @@ BulkEditorInputType_4=Belege und Beobachtungen BulkEditorInputType_5=Nutzer BulkEditorInputType_6=Nutzergruppen BulkEditorInputType_7=Taxa -BulkEditorInputType_8=Medien \ No newline at end of file +BulkEditorInputType_8=Medien + +USER_CREATOR_user_exists_title=Der Benutzer existiert bereits +USER_CREATOR_user_exists=Der Benutzer existiert bereits in der Datenbank. diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/UserCreator.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/UserCreator.java index 0abba8e90..c74147116 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/UserCreator.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/UserCreator.java @@ -10,13 +10,16 @@ package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.springframework.security.access.AccessDeniedException; import eu.etaxonomy.cdm.api.service.IUserService; import eu.etaxonomy.cdm.model.common.User; +import eu.etaxonomy.cdm.persistence.query.MatchMode; import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator; +import eu.etaxonomy.taxeditor.bulkeditor.input.Messages; import eu.etaxonomy.taxeditor.model.MessagingUtils; import eu.etaxonomy.taxeditor.store.CdmStore; @@ -42,9 +45,15 @@ public class UserCreator implements IEntityCreator{ public User createEntity(Object key, String text) { try{ User user = User.NewInstance(text, text); - CdmStore.getService(IUserService.class).createUser(user); - user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid()); - return user; + List userList =CdmStore.getService(IUserService.class).listByUsername(user.getUsername(), MatchMode.EXACT, null, 100, 0, null, null); + if (userList.isEmpty()){ + CdmStore.getService(IUserService.class).createUser(user); + user = CdmStore.getService(IUserService.class).loadWithUpdate(user.getUuid()); + return user; + } else{ + MessagingUtils.messageDialog(Messages.USER_CREATOR_user_exists_title, user, Messages.USER_CREATOR_user_exists); + return null; + } } catch (AccessDeniedException e){ MessagingUtils.messageDialog("Access denied", getClass(), e.getMessage(), e); return null; -- 2.34.1